-
Notifications
You must be signed in to change notification settings - Fork 86
/
Copy pathhttp-job-test
executable file
·58 lines (46 loc) · 1.4 KB
/
http-job-test
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
#!/usr/bin/env bash
set -o errexit
main() {
: "${JOB_BOARD_CLONE_DIR:=$(mktemp -d /tmp/job-board-clone.XXXXXXX)}"
: "${JOB_BOARD_CLONE_URL:=https://github.com/travis-ci/job-board.git}"
: "${JOB_BOARD_CLONE_BRANCH:=ga-tbt181-job_board}"
trap __cleanup EXIT QUIT INT
git clone --branch "${JOB_BOARD_CLONE_BRANCH}" \
"${JOB_BOARD_CLONE_URL}" "${JOB_BOARD_CLONE_DIR}"
docker run -d \
--name job-board-redis \
redis
docker run -d \
--name job-board-postgres \
-e POSTGRES_PASSWORD=yay \
postgres
docker exec \
--user postgres \
job-board-postgres bash -c 'while ! pg_isready; do sleep 1; done'
# despite pg_isready reporting the server as up, we still have to wait a bit
# for createdb to be able to successfully connect
sleep 1
docker exec \
--user postgres \
job-board-postgres createdb job_board_test
docker exec \
--user postgres \
job-board-postgres psql -l
docker run \
--rm \
--name travis-worker-http-job-test \
--link job-board-postgres:postgres \
--link job-board-redis:redis \
-v "${JOB_BOARD_CLONE_DIR}:/usr/src/app" \
-v "${TOP:=$(git rev-parse --show-toplevel)}:/worker" \
-w /usr/src/app \
"ruby:3.2.5" \
/worker/script/http-job-test-internal
}
__cleanup() {
if [[ "${JOB_BOARD_CLONE_DIR}" ]]; then
rm -rf "${JOB_BOARD_CLONE_DIR}"
fi
docker rm -f job-board-{postgres,redis}
}
main "$@"