-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathtest-prow-e2e.sh
More file actions
executable file
·108 lines (86 loc) · 2.99 KB
/
test-prow-e2e.sh
File metadata and controls
executable file
·108 lines (86 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/usr/bin/env bash
set -exuo pipefail
# Set Cypress cache to user-writable location as user inside container may not have write access
export CYPRESS_CACHE_FOLDER="${HOME}/.cache/Cypress"
# Install and enable Corepack for Yarn 4
npm install -g corepack 2>/dev/null || true
corepack enable && corepack prepare yarn@4.6.0 --activate
ARTIFACT_DIR=${ARTIFACT_DIR:=/tmp/artifacts}
SCREENSHOTS_DIR=gui_test_screenshots
INSTALLER_DIR=${INSTALLER_DIR:=${ARTIFACT_DIR}/installer}
function copyArtifacts {
if [ -d "$ARTIFACT_DIR" ] && [ -d "$SCREENSHOTS_DIR" ]; then
if [[ -z "$(ls -A -- "$SCREENSHOTS_DIR")" ]]; then
echo "No artifacts were copied."
else
echo "Copying artifacts from $(pwd)..."
cp -r "$SCREENSHOTS_DIR" "${ARTIFACT_DIR}/gui_test_screenshots"
fi
fi
}
trap copyArtifacts EXIT
# don't log kubeadmin-password
set +x
BRIDGE_KUBEADMIN_PASSWORD="$(cat "${KUBEADMIN_PASSWORD_FILE:-${INSTALLER_DIR}/auth/kubeadmin-password}")"
export BRIDGE_KUBEADMIN_PASSWORD
set -x
BRIDGE_BASE_ADDRESS="$(oc get consoles.config.openshift.io cluster -o jsonpath='{.status.consoleURL}')"
export BRIDGE_BASE_ADDRESS
if [ ! -d node_modules ]; then
yarn install
fi
# Ensure Cypress binary is installed
yarn exec cypress install
while getopts s:h:l:n: flag
do
case "${flag}" in
s) spec=${OPTARG};;
h) headless=${OPTARG};;
n) nightly=${OPTARG};;
esac
done
if [ $# -eq 0 ]; then
echo "Runs Cypress tests in Test Runner or headless mode"
echo "Usage: test-cypress [-s] <filemask> [-h true] [-n true/false]"
echo " '-s <specmask>' is a file mask for spec test files, such as 'tests/pipelines/*'."
echo " '-h true' runs Cypress in headless mode. When omitted, launches Cypress Test Runner"
echo " '-n true' runs the 'nightly' suite, all specs from selected packages in headless mode"
echo "Examples:"
echo " test-prow-e2e.sh // displays this help text"
echo " test-prow-e2e.sh -h false // opens Cypress Test Runner"
echo " test-prow-e2e.sh -h true // runs packages in headless mode"
echo " test-prow-e2e.sh -n true // runs the whole nightly suite"
yarn run test-cypress-headless
trap EXIT
exit;
fi
if [ -n "${nightly-}" ]; then
# do not fail fast, let all suites run
set +e
err=0
trap 'err=1' ERR
yarn run test-cypress-nightly
exit $err;
fi
if [ -n !"${headless-}" ]; then
yarn run test-cypress
exit;
fi
if [ -n "${headless-}" ]; then
yarn run test-cypress-headless
exit;
fi
yarn_script="test-cypress"
if [ -n "${nightly-}" ]; then
yarn_script="$yarn_script-nightly"
elif [ -n !"${headless-}" ]; then
yarn_script="$yarn_script"
elif [ -n "${headless-}" ]; then
yarn_script="$yarn_script-headless"
fi
if [ -n "${spec-}" ] && [ -z "${nightly-}"]; then
yarn_script="$yarn_script --spec '$spec'"
fi
yarn run $yarn_script
# echo "Runs Cypress tests in headless mode"
# yarn run test-cypress-headless