-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassessment-e2e.sh
More file actions
56 lines (47 loc) · 2.02 KB
/
assessment-e2e.sh
File metadata and controls
56 lines (47 loc) · 2.02 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
#!/usr/bin/env bash
set -e
echo "Starting Assessment End-To-End Tests"
echo "Images:"
echo " assessment-e2e: ${IMAGE_E2E}"
echo " assessment-frontend: ${IMAGE_ASSESSMENT_FRONTEND}"
echo " assessment-api: ${IMAGE_ASSESSMENT_API}"
# Prep variables
imageAssessmentApiLatest="${DOCKER_BASE_IMAGE_PATH}/assessment-api:latest"
assessmentApiContainerName=e2e-assessment-api
e2eLogsDirPath=e2e/logs
authHeader="Authorization: token ${GITHUB_API_TOKEN}"
acceptHeader='Accept: application/vnd.github.v3.raw'
githubUrlPrefix=https://api.github.com/repos/CommercialTribe
dockerComposeFile=docker-compose-e2e.yml
# Download needed files
echo "Getting ${dockerComposeFile}"
dockerComposeE2e="${githubUrlPrefix}/assessment-e2e/contents/${dockerComposeFile}"
curl -H "${authHeader}" -H "${acceptHeader}" -sSL ${dockerComposeE2e} > ${dockerComposeFile}
echo "Getting assessment-api .env.docker"
assessmentApiEnv="${githubUrlPrefix}/assessment-api/contents/.env.docker"
curl -H "${authHeader}" -H "${acceptHeader}" -sSL ${assessmentApiEnv} > assessment-api.env
# Init and run tests
echo "Bootstrapping db"
# FIXME Workaround for https://github.com/docker/compose/issues/7097
sudo apt-get update
sudo apt-get install expect-dev
# Workaround to make rabbitmq complete the booting process
IMAGE_ASSESSMENT_API="${imageAssessmentApiLatest}" unbuffer docker-compose -f ${dockerComposeFile} run assessment-api yarn -v
sleep 30
IMAGE_ASSESSMENT_API="${imageAssessmentApiLatest}" unbuffer docker-compose -f ${dockerComposeFile} run assessment-api yarn db:bootstrap
echo "Running migrations"
unbuffer docker-compose -f ${dockerComposeFile} run assessment-api yarn db:migrate
echo "Running e2e tests"
set +e
docker-compose -f ${dockerComposeFile} run e2e
e2eExitCode=$?
if [ ${e2eExitCode} -ne 0 ]
then
set -e
echo "e2e tests failed. Writing assessment-api logs for upload to S3"
mkdir -p ${e2eLogsDirPath}
docker logs ${assessmentApiContainerName} > "${e2eLogsDirPath}/${assessmentApiContainerName}.txt"
exit ${e2eExitCode}
fi
set -e
echo "Assessment End-To-End Tests Done"