-
Notifications
You must be signed in to change notification settings - Fork 38
/
runner.sh
executable file
·89 lines (73 loc) · 1.76 KB
/
runner.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
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
#!/bin/bash
source tests/tests_common.sh
source scripts/common.sh
echo ">>> Environment variables:"
env | sort
echo ">>> Running test $TEST"
if [ -z "$API_KEY" ]; then
echo "Missing API_KEY"
exit 1
fi
if [ -z "$REGION" ]; then
echo "Missing REGION"
exit 1
fi
if [ -z "$RESOURCE_GROUP" ]; then
echo "Missing RESOURCE_GROUP"
exit 1
fi
if [ -z "$TEST" ]; then
echo "Missing TEST"
exit 1
fi
# allow to force terraform to a specific version
if [ -z "$TERRAFORM_VERSION" ]; then
export TERRAFORM_VERSION=0.11.14
fi
if [ "$TERRAFORM_VERSION" == "latest" ]; then
tfswitch -u
else
tfswitch $TERRAFORM_VERSION
fi
# log in
ibmcloud config --check-version=false
ibmcloud login --apikey $API_KEY -r $REGION -g $RESOURCE_GROUP
if [ "$KEYS" ];
then
echo "KEYS has been specified in the environment"
else
echo "KEYS not specified in the environment, will use all existing keys"
if KEYS_JSON=$(ibmcloud is keys --json)
then
export KEYS=$(echo "${KEYS_JSON}" | jq -r ".[].name" | paste -d, -s)
else
echo "Failed to get KEYS: ${KEYS_JSON}"
fi
fi
# generate a new key pair to be used by tests
echo "Generating a temporary key for the test..."
TEST_KEY_NAME=$(ssh_key_name_for_job)
ssh_key_create $TEST_KEY_NAME
# add it to the mix
export KEYS=$TEST_KEY_NAME,$KEYS
# run the main test
./$TEST
# capture the main script error code
errorCode=$?
echo "<<< Test exited with error code $errorCode"
# run the cleanup in all cases
if [ -z "$TEARDOWN" ]; then
echo "<<< No TEARDOWN script specified"
else
echo "<<< Running teardown $TEARDOWN"
./$TEARDOWN
fi
# Delete the temporary SSH key last
TEST_KEY_NAME=$(ssh_key_name_for_job)
ssh_key_delete_if_exists $TEST_KEY_NAME
# raise error so this step fails
if [ $errorCode -ne 0 ]; then
exit $errorCode
else
exit 0
fi