67 lines
2.0 KiB
Bash
Executable File
67 lines
2.0 KiB
Bash
Executable File
#!/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
|
|
|
|
if [[ -n "${ATTEMPTS:-}" ]]; then
|
|
if [[ "$command" == "open" ]]; then
|
|
echo "ATTEMPTS is ignored when running cypress open"
|
|
ATTEMPTS=1
|
|
fi
|
|
else
|
|
ATTEMPTS=1
|
|
fi
|
|
|
|
if [[ -z "${CYPRESS_SPIFFWORKFLOW_FRONTEND_AUTH_WITH_KEYCLOAK:-}" ]]; then
|
|
export CYPRESS_SPIFFWORKFLOW_FRONTEND_AUTH_WITH_KEYCLOAK=true
|
|
fi
|
|
|
|
cypress_run_file="/var/tmp/cypress_run"
|
|
echo "Recording stats to ${cypress_run_file}"
|
|
|
|
if [[ ! -f "$cypress_run_file" ]]; then
|
|
echo "success,duration,start_time,end_time,frontend_url" >"$cypress_run_file"
|
|
fi
|
|
|
|
frontend_url="${SPIFFWORKFLOW_FRONTEND_URL:-localhost}"
|
|
|
|
for attempt in $(seq 1 "$ATTEMPTS" ); do
|
|
echo "Running attempt: ${attempt}"
|
|
|
|
start_time=$(date +%s)
|
|
success="false"
|
|
# spec_pattern="cypress/pilot/**/*.cy.{js,jsx,ts,tsx}"
|
|
spec_pattern="cypress/pilot/**/*.cy.{js,jsx,ts,tsx}"
|
|
if ./node_modules/.bin/cypress "$command" -c specPattern="${spec_pattern}" --e2e --browser chrome "$@"; then
|
|
success="true"
|
|
fi
|
|
end_time=$(date +%s)
|
|
if is_mac; then
|
|
formatted_start_time=$(date -r "${start_time}" +"%Y-%m-%dT%H-%M-%S")
|
|
formatted_end_time=$(date -r "${end_time}" +"%Y-%m-%dT%H-%M-%S")
|
|
else
|
|
formatted_start_time=$(date "-d@${start_time}" +"%Y-%m-%dT%H-%M-%S")
|
|
formatted_end_time=$(date "-d@${end_time}" +"%Y-%m-%dT%H-%M-%S")
|
|
fi
|
|
|
|
if [[ "$command" != "open" ]]; then
|
|
echo "Recording stats to ${cypress_run_file}"
|
|
echo "${success},$(( end_time - start_time )),${formatted_start_time},${formatted_end_time},${frontend_url}" >>"$cypress_run_file"
|
|
fi
|
|
done
|
|
echo "Recorded stats to ${cypress_run_file}"
|