2023-03-07 02:41:27 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
function error_handler() {
|
|
|
|
>&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}."
|
|
|
|
exit "$2"
|
|
|
|
}
|
|
|
|
trap 'error_handler ${LINENO} $?' ERR
|
|
|
|
set -o errtrace -o errexit -o nounset -o pipefail
|
|
|
|
|
|
|
|
# see also: npx cypress run --env grep="can filter",grepFilterSpecs=true
|
|
|
|
# https://github.com/cypress-io/cypress/tree/develop/npm/grep#pre-filter-specs-grepfilterspecs
|
|
|
|
|
|
|
|
command="${1:-}"
|
|
|
|
if [[ -z "$command" ]]; then
|
|
|
|
command=open
|
|
|
|
else
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
|
2023-03-09 15:34:34 +00:00
|
|
|
if [[ -n "${ATTEMPTS:-}" ]]; then
|
|
|
|
if [[ "$command" == "open" ]]; then
|
|
|
|
echo "ATTEMPTS is ignored when running cypress open"
|
|
|
|
ATTEMPTS=1
|
|
|
|
fi
|
|
|
|
else
|
2023-03-07 19:26:06 +00:00
|
|
|
ATTEMPTS=1
|
|
|
|
fi
|
|
|
|
|
2023-03-07 02:41:27 +00:00
|
|
|
if [[ -z "${CYPRESS_SPIFFWORKFLOW_FRONTEND_AUTH_WITH_KEYCLOAK:-}" ]]; then
|
|
|
|
export CYPRESS_SPIFFWORKFLOW_FRONTEND_AUTH_WITH_KEYCLOAK=true
|
|
|
|
fi
|
|
|
|
|
2023-03-07 19:26:06 +00:00
|
|
|
cypress_run_file="/var/tmp/cypress_run_$(date +%s)"
|
|
|
|
echo "Recording stats to ${cypress_run_file}"
|
|
|
|
|
|
|
|
for attempt in $(seq 1 "$ATTEMPTS" ); do
|
|
|
|
echo "Running attempt: ${attempt}"
|
|
|
|
|
|
|
|
start_time=$(date +%s)
|
|
|
|
success="false"
|
|
|
|
if ./node_modules/.bin/cypress "$command" -c specPattern="cypress/pilot/**/*.cy.{js,jsx,ts,tsx}" --e2e --browser chrome "$@"; then
|
|
|
|
success="true"
|
|
|
|
fi
|
|
|
|
end_time=$(date +%s)
|
|
|
|
|
|
|
|
echo "${success},$(( end_time - start_time ))" >>"$cypress_run_file"
|
|
|
|
done
|
2023-03-07 22:13:46 +00:00
|
|
|
echo "Recorded stats to ${cypress_run_file}"
|