#!/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_$(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 echo "Recorded stats to ${cypress_run_file}"