/
bootstrap-docker-container.sh
executable file
·58 lines (42 loc) · 1.15 KB
/
bootstrap-docker-container.sh
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
#!/bin/bash
set -e # exit on error
echo "$0 running as $(whoami)"
echo "Node version: $(node -v)"
if [ ! -d "$TEST_PROJECT_DIR" ]; then
echo "Missing TEST_PROJECT_DIR=$TEST_PROJECT_DIR. Check Docker Bind+Env config"
exit 1
fi
if [ ! -d "$REPO_DIR" ]; then
echo "Missing REPO_DIR=$REPO_DIR. Check Docker Bind+Env config"
exit 1
fi
ZIP_PATH=$REPO_DIR/cypress.zip
CLI_PATH=$REPO_DIR/cli/build
if [ ! -f "$ZIP_PATH" ]; then
echo "Missing $ZIP_PATH. Check Docker Bind config"
exit 1
fi
if [ ! -d "$CLI_PATH" ]; then
echo "Missing $CLI_PATH. Check Docker Bind config"
exit 1
fi
set -x # log commands
cd $TEST_PROJECT_DIR
export CYPRESS_INSTALL_BINARY=$ZIP_PATH
export CYPRESS_CACHE_FOLDER=/tmp/CYPRESS_CACHE_FOLDER/
export npm_config_cache=/tmp/npm_config_cache/
export npm_config_package_lock=false
mkdir $npm_config_cache
chown -R 1000:1000 $npm_config_cache
npx npm@8 install --unsafe-perm --allow-root --force file:$CLI_PATH
PATH=$PATH:./node_modules/.bin
cypress install
# run command passed in argv and store exit code
set +e
$@
EXIT_CODE=$?
set -e
# delete tmp to avoid permissions issues on the host
cd -
rm -rf $TEST_PROJECT_DIR
exit $EXIT_CODE