Skip to content

Commit 9622b0f

Browse files
committed
Added tests for multiple-commands
1 parent f47d49e commit 9622b0f

File tree

1 file changed

+116
-10
lines changed

1 file changed

+116
-10
lines changed

tests/multiple-commands.bats

Lines changed: 116 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,143 @@ export BUILDKITE_JOB_ID=12
1515
export BUILDKITE_PIPELINE_SLUG=test
1616

1717

18-
@test "Build and run in a single step" {
18+
@test "Build and run" {
1919
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_RUN=myservice
2020
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_BUILD=myservice
21+
22+
# necessary for build
2123
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_IMAGE_REPOSITORY=my.repository/llamas
22-
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_CHECK_LINKED_CONTAINERS=false
23-
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_CLEANUP=false
2424

2525
stub docker-compose \
2626
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml build --pull myservice : echo built myservice" \
2727
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml push myservice : echo pushed myservice" \
2828
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml pull myservice : echo pulled myservice" \
2929
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml up -d --scale myservice=0 myservice : echo ran dependencies" \
3030
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml run --name buildkite12_myservice_build_1 --rm myservice /bin/sh -e -c 'pwd' : echo ran myservice"
31+
32+
# these commands simulate metadata for a specific value by using an intermediate-file
33+
stub buildkite-agent \
34+
"meta-data set docker-compose-plugin-built-image-tag-myservice \* : echo \$4 > /tmp/build-run-metadata" \
35+
"meta-data exists docker-compose-plugin-built-image-tag-myservice : test -f /tmp/build-run-metadata" \
36+
"meta-data get docker-compose-plugin-built-image-tag-myservice : cat /tmp/build-run-metadata"
37+
38+
run $PWD/hooks/command
39+
40+
assert_success
41+
assert_output --partial "Building services myservice"
42+
assert_output --partial "Pushing built images to my.repository/llamas"
43+
assert_output --partial "Found a pre-built image for myservice"
44+
assert_output --partial "Starting dependencies"
45+
assert_output --partial "ran myservice"
46+
47+
unstub docker-compose
48+
unstub buildkite-agent
49+
}
50+
51+
@test "Build and push" {
52+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_BUILD=myservice
53+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_PUSH=myservice
54+
55+
# necessary for build
56+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_IMAGE_REPOSITORY=my.repository/llamas
57+
58+
stub docker-compose \
59+
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml build --pull myservice : echo built myservice" \
60+
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml push myservice : echo build-pushed myservice" \
61+
"-f docker-compose.yml -p buildkite12 config : echo ''" \
62+
"-f docker-compose.yml -p buildkite12 push myservice : echo push-pushed myservice"
3163

64+
# these commands simulate metadata for a specific value by using an intermediate-file
3265
stub buildkite-agent \
33-
"meta-data set docker-compose-plugin-built-image-tag-myservice my.repository/llamas:test-myservice-build-1 : echo set meta-data" \
34-
"meta-data exists docker-compose-plugin-built-image-tag-myservice : exit 0" \
35-
"meta-data get docker-compose-plugin-built-image-tag-myservice : echo got meta-data"
66+
"meta-data set docker-compose-plugin-built-image-tag-myservice \* : echo \$4 > /tmp/build-push-metadata" \
67+
"meta-data exists docker-compose-plugin-built-image-tag-myservice : test -f /tmp/build-push-metadata" \
68+
"meta-data get docker-compose-plugin-built-image-tag-myservice : cat /tmp/build-push-metadata"
69+
70+
stub docker \
71+
"pull my.repository/llamas:test-myservice-build-1 : echo pulled pre-built image" \
72+
"tag my.repository/llamas:test-myservice-build-1 buildkite12_myservice : echo re-tagged pre-built image"
3673

3774
run $PWD/hooks/command
3875

76+
assert_success
77+
78+
assert_output --partial "Building services myservice"
79+
assert_output --partial "Pushing built images to my.repository/llamas"
80+
assert_output --partial "Pulling pre-built service myservice"
81+
assert_output --partial "Tagging pre-built service myservice"
82+
assert_output --partial "Pushing images for myservice"
83+
3984
unstub docker-compose
4085
unstub buildkite-agent
86+
}
87+
88+
@test "Run and push without pre-built image" {
89+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_RUN=myservice
90+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_PUSH=myservice
91+
92+
stub docker-compose \
93+
"-f docker-compose.yml -p buildkite12 build --pull myservice : echo built myservice" \
94+
"-f docker-compose.yml -p buildkite12 up -d --scale myservice=0 myservice : echo ran dependencies" \
95+
"-f docker-compose.yml -p buildkite12 run --name buildkite12_myservice_build_1 --rm myservice /bin/sh -e -c 'pwd' : echo ran myservice" \
96+
"-f docker-compose.yml -p buildkite12 config : echo ''" \
97+
"-f docker-compose.yml -p buildkite12 build myservice : echo built-2 myservice" \
98+
"-f docker-compose.yml -p buildkite12 push myservice : echo pushed myservice"
99+
100+
# these make sure that the image is not pre-built
101+
stub buildkite-agent \
102+
"meta-data exists docker-compose-plugin-built-image-tag-myservice : exit 1" \
103+
"meta-data exists docker-compose-plugin-built-image-tag-myservice : exit 1"
104+
105+
run $PWD/hooks/command
41106

42107
assert_success
43-
assert_output --partial "built myservice"
44-
assert_output --partial "pushed myservice"
45-
assert_output --partial "pulled myservice"
46-
assert_output --partial "ran dependencies"
108+
109+
assert_output --partial "Building Docker Compose Service: myservice"
110+
assert_output --partial "No pre-built image found from a previous "
111+
assert_output --partial "Starting dependencies"
47112
assert_output --partial "ran myservice"
113+
assert_output --partial "Building myservice"
114+
assert_output --partial "Pushing images for myservice"
115+
116+
unstub docker-compose
117+
unstub buildkite-agent
48118
}
49119

50120

121+
@test "Run and push with pre-built image" {
122+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_RUN=myservice
123+
export BUILDKITE_PLUGIN_DOCKER_COMPOSE_PUSH=myservice
124+
125+
stub docker-compose \
126+
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml pull myservice : echo pulled myservice" \
127+
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml up -d --scale myservice=0 myservice : echo ran dependencies" \
128+
"-f docker-compose.yml -p buildkite12 -f docker-compose.buildkite-1-override.yml run --name buildkite12_myservice_build_1 --rm myservice /bin/sh -e -c 'pwd' : echo ran myservice" \
129+
"-f docker-compose.yml -p buildkite12 config : echo ''" \
130+
"-f docker-compose.yml -p buildkite12 push myservice : echo pushed myservice"
131+
132+
# these make sure that the image is not pre-built
133+
stub buildkite-agent \
134+
"meta-data exists docker-compose-plugin-built-image-tag-myservice : exit 0" \
135+
"meta-data get docker-compose-plugin-built-image-tag-myservice : echo myservice-tag" \
136+
"meta-data exists docker-compose-plugin-built-image-tag-myservice : exit 0" \
137+
"meta-data get docker-compose-plugin-built-image-tag-myservice : echo myservice-tag"
138+
139+
stub docker \
140+
"pull myservice-tag : echo pulled pre-built image" \
141+
"tag myservice-tag buildkite12_myservice : echo re-tagged pre-built image"
142+
143+
run $PWD/hooks/command
144+
145+
assert_success
146+
147+
refute_output --partial "Building services myservice"
148+
assert_output --partial "Found a pre-built image for myservice"
149+
assert_output --partial "Pulling services myservice"
150+
assert_output --partial "Starting dependencies"
151+
assert_output --partial "Pulling pre-built service myservice"
152+
assert_output --partial "Pushing images for myservice"
153+
154+
unstub docker-compose
155+
unstub buildkite-agent
156+
}
51157

0 commit comments

Comments
 (0)