Skip to content

Commit 05cca49

Browse files
authored
make e2e tests more usable with docker-compose (#1770)
* make docker-compose calls more flexible for older versions Signed-off-by: Bob Callaway <[email protected]> * start/stop pubsub Signed-off-by: Bob Callaway <[email protected]> --------- Signed-off-by: Bob Callaway <[email protected]>
1 parent 2011c42 commit 05cca49

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

e2e-test.sh

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,21 @@
1717
set -e
1818
testdir=$(dirname "$0")
1919

20+
docker_compose="docker compose -f docker-compose.yml -f docker-compose.test.yml"
21+
if ! ${docker_compose} version 2&>1 >/dev/null; then
22+
docker_compose="docker-compose -f docker-compose.yml -f docker-compose.test.yml"
23+
fi
24+
2025
rm -f /tmp/pkg-rekor-*.cov
2126
echo "installing gocovmerge"
2227
make gocovmerge
28+
29+
echo "building test-only containers"
30+
docker build -t gcp-pubsub-emulator -f Dockerfile.pubsub-emulator .
2331
docker kill $(docker ps -q) || true
32+
2433
echo "starting services"
25-
docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d --build
34+
${docker_compose} up -d --build
2635

2736
echo "building CLI and server"
2837
# set the path to the root of the repo
@@ -32,7 +41,7 @@ go test -c ./cmd/rekor-server -o rekor-server -covermode=count -coverpkg=./...
3241

3342
count=0
3443
echo -n "waiting up to 120 sec for system to start"
35-
until [ $(docker-compose ps | grep -c "(healthy)") == 3 ];
44+
until [ $(${docker_compose} ps | grep -c "(healthy)") == 4 ];
3645
do
3746
if [ $count -eq 12 ]; then
3847
echo "! timeout reached"
@@ -51,23 +60,23 @@ cp $dir/rekor-cli $REKORTMPDIR/rekor-cli
5160
touch $REKORTMPDIR.rekor.yaml
5261
trap "rm -rf $REKORTMPDIR" EXIT
5362
if ! REKORTMPDIR=$REKORTMPDIR go test -tags=e2e $(go list ./... | grep -v ./tests) ; then
54-
docker-compose logs --no-color > /tmp/docker-compose.log
63+
${docker_compose} logs --no-color > /tmp/docker-compose.log
5564
exit 1
5665
fi
57-
if docker-compose logs --no-color | grep -q "panic: runtime error:" ; then
66+
if ${docker_compose} logs --no-color | grep -q "panic: runtime error:" ; then
5867
# if we're here, we found a panic
5968
echo "Failing due to panics detected in logs"
60-
docker-compose logs --no-color > /tmp/docker-compose.log
69+
${docker_compose} logs --no-color > /tmp/docker-compose.log
6170
exit 1
6271
fi
6372

6473
echo "generating code coverage"
65-
docker-compose restart rekor-server
74+
${docker_compose} restart rekor-server
6675

67-
if ! docker cp $(docker ps -aqf "name=rekor_rekor-server"):go/rekor-server.cov /tmp/pkg-rekor-server.cov ; then
76+
if ! docker cp $(docker ps -aqf "name=rekor_rekor-server" -f "name=rekor-rekor-server"):go/rekor-server.cov /tmp/pkg-rekor-server.cov ; then
6877
# failed to copy code coverage report from server
6978
echo "Failed to retrieve server code coverage report"
70-
docker-compose logs --no-color > /tmp/docker-compose.log
79+
${docker_compose} logs --no-color > /tmp/docker-compose.log
7180
exit 1
7281
fi
7382

tests/e2e-test.sh

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
set -e
1818
testdir=$(dirname "$0")
1919

20+
docker_compose="docker compose -f docker-compose.yml -f docker-compose.test.yml"
21+
if ! ${docker_compose} version 2&>1 >/dev/null; then
22+
docker_compose="docker-compose -f docker-compose.yml -f docker-compose.test.yml"
23+
fi
24+
2025
rm -f /tmp/rekor-*.cov
2126

2227
echo "installing gocovmerge"
@@ -26,7 +31,7 @@ echo "building test-only containers"
2631
docker build -t gcp-pubsub-emulator -f Dockerfile.pubsub-emulator .
2732

2833
echo "starting services"
29-
docker compose -f docker-compose.yml -f docker-compose.test.yml up -d --build
34+
${docker_compose} up -d --build
3035

3136
echo "building CLI and server"
3237
go test -c ./cmd/rekor-cli -o rekor-cli -cover -covermode=count -coverpkg=./...
@@ -35,8 +40,8 @@ go test -c ./cmd/rekor-server -o rekor-server -covermode=count -coverpkg=./...
3540
count=0
3641

3742
echo "waiting up to 2 min for system to start"
38-
until [ $(docker compose ps | \
39-
grep -E "(rekor-mysql|rekor-redis|rekor-server|gcp-pubsub-emulator)" | \
43+
until [ $(${docker_compose} ps | \
44+
grep -E "(rekor[-_]mysql|rekor[-_]redis|rekor[-_]rekor-server|rekor[-_]gcp-pubsub-emulator)" | \
4045
grep -c "(healthy)" ) == 4 ];
4146
do
4247
if [ $count -eq 24 ]; then
@@ -55,33 +60,27 @@ REKORTMPDIR="$(mktemp -d -t rekor_test.XXXXXX)"
5560
touch $REKORTMPDIR.rekor.yaml
5661
trap "rm -rf $REKORTMPDIR" EXIT
5762
if ! REKORTMPDIR=$REKORTMPDIR go test -tags=e2e ./tests/ -run TestIssue1308; then
58-
docker compose logs --no-color > /tmp/docker compose.log
63+
${docker_compose} logs --no-color > /tmp/docker-compose.log
5964
exit 1
6065
fi
6166
if ! REKORTMPDIR=$REKORTMPDIR PUBSUB_EMULATOR_HOST=localhost:8085 go test -tags=e2e ./tests/; then
62-
docker compose logs --no-color > /tmp/docker compose.log
67+
${docker_compose} logs --no-color > /tmp/docker-compose.log
6368
exit 1
6469
fi
65-
if docker compose logs --no-color | grep -q "panic: runtime error:" ; then
70+
if ${docker_compose} logs --no-color | grep -q "panic: runtime error:" ; then
6671
# if we're here, we found a panic
6772
echo "Failing due to panics detected in logs"
68-
docker compose logs --no-color > /tmp/docker compose.log
73+
${docker_compose} logs --no-color > /tmp/docker-compose.log
6974
exit 1
7075
fi
7176

7277
echo "generating code coverage"
73-
docker compose restart rekor-server
74-
75-
# docker compose appears to name the containers slightly differently in GHA CI vs locally on macOS
76-
container_name="rekor_rekor-server"
77-
if [[ "$(uname -s)" -eq "Darwin" ]]; then
78-
container_name="rekor-rekor-server"
79-
fi
78+
${docker_compose} restart rekor-server
8079

81-
if ! docker cp $(docker ps -aqf "name=${container_name}"):/go/rekor-server.cov /tmp/rekor-server.cov ; then
80+
if ! docker cp $(docker ps -aqf "name=rekor_rekor-server" -f "name=rekor-rekor-server"):/go/rekor-server.cov /tmp/rekor-server.cov ; then
8281
# failed to copy code coverage report from server
8382
echo "Failed to retrieve server code coverage report"
84-
docker compose logs --no-color > /tmp/docker compose.log
83+
${docker_compose} logs --no-color > /tmp/docker-compose.log
8584
exit 1
8685
fi
8786

0 commit comments

Comments
 (0)