@@ -69,14 +69,14 @@ pre_command_hook="$PWD/hooks/pre-command"
6969 " pull 1234567891012.dkr.ecr.ap-southeast-2.amazonaws.com/build-cache/example-org/example-pipeline:deadbee : echo not found && false" \
7070 " build --file=Dockerfile --tag=1234567891012.dkr.ecr.ap-southeast-2.amazonaws.com/build-cache/example-org/example-pipeline:deadbee . : echo building docker image" \
7171 " tag ${repository_uri} :deadbee ${repository_uri} :latest : echo tagged latest" \
72- " push ${repository_uri} :deadbee : echo pushed deadbeef " \
72+ " push ${repository_uri} :deadbee : echo pushed deadbee " \
7373 " push ${repository_uri} :latest : echo pushed latest"
7474
7575 stub sha1sum \
7676 " Dockerfile : echo 'sha1sum(Dockerfile)'" \
7777 " : echo sha1sum" \
7878 " : echo sha1sum" \
79- " : echo deadbeef "
79+ " : echo deadbee "
8080
8181 run " ${pre_command_hook} "
8282
@@ -87,7 +87,7 @@ pre_command_hook="$PWD/hooks/pre-command"
8787 assert_output --partial " tag existing resource"
8888 assert_output --partial " put lifecycle policy"
8989 assert_output --partial " tagged latest"
90- assert_output --partial " pushed deadbeef "
90+ assert_output --partial " pushed deadbee "
9191 assert_output --partial " pushed latest"
9292
9393 unstub aws
@@ -115,14 +115,14 @@ pre_command_hook="$PWD/hooks/pre-command"
115115 " pull 1234567891012.dkr.ecr.eu-west-1.amazonaws.com/build-cache/example-org/example-pipeline:deadbee : echo not found && false" \
116116 " build --file=Dockerfile --tag=1234567891012.dkr.ecr.eu-west-1.amazonaws.com/build-cache/example-org/example-pipeline:deadbee . : echo building docker image" \
117117 " tag ${repository_uri} :deadbee ${repository_uri} :latest : echo tagged latest" \
118- " push ${repository_uri} :deadbee : echo pushed deadbeef " \
118+ " push ${repository_uri} :deadbee : echo pushed deadbee " \
119119 " push ${repository_uri} :latest : echo pushed latest"
120120
121121 stub sha1sum \
122122 " Dockerfile : echo 'sha1sum(Dockerfile)'" \
123123 " : echo sha1sum" \
124124 " : echo sha1sum" \
125- " : echo deadbeef "
125+ " : echo deadbee "
126126
127127 run " ${pre_command_hook} "
128128
@@ -133,7 +133,7 @@ pre_command_hook="$PWD/hooks/pre-command"
133133 assert_output --partial " tag existing resource"
134134 assert_output --partial " put lifecycle policy"
135135 assert_output --partial " tagged latest"
136- assert_output --partial " pushed deadbeef "
136+ assert_output --partial " pushed deadbee "
137137 assert_output --partial " pushed latest"
138138
139139 unstub aws
@@ -163,14 +163,14 @@ pre_command_hook="$PWD/hooks/pre-command"
163163 " pull 1234567891012.dkr.ecr.ap-southeast-1.amazonaws.com/build-cache/example-org/example-pipeline:deadbee : echo not found && false" \
164164 " build --file=Dockerfile --tag=1234567891012.dkr.ecr.ap-southeast-1.amazonaws.com/build-cache/example-org/example-pipeline:deadbee . : echo building docker image" \
165165 " tag ${repository_uri} :deadbee ${repository_uri} :latest : echo tagged latest" \
166- " push ${repository_uri} :deadbee : echo pushed deadbeef " \
166+ " push ${repository_uri} :deadbee : echo pushed deadbee " \
167167 " push ${repository_uri} :latest : echo pushed latest"
168168
169169 stub sha1sum \
170170 " Dockerfile : echo 'sha1sum(Dockerfile)'" \
171171 " : echo sha1sum" \
172172 " : echo sha1sum" \
173- " : echo deadbeef "
173+ " : echo deadbee "
174174
175175 run " ${pre_command_hook} "
176176
@@ -181,9 +181,48 @@ pre_command_hook="$PWD/hooks/pre-command"
181181 assert_output --partial " tag existing resource"
182182 assert_output --partial " put lifecycle policy"
183183 assert_output --partial " tagged latest"
184- assert_output --partial " pushed deadbeef "
184+ assert_output --partial " pushed deadbee "
185185 assert_output --partial " pushed latest"
186186
187+ unstub aws
188+ unstub docker
189+ unstub sha1sum
190+ }
191+
192+ @test " ECR: Calls list-images to check existence of cache" {
193+ export AWS_DEFAULT_REGION=" ap-southeast-2"
194+ export BUILDKITE_PLUGIN_DOCKER_ECR_CACHE_REGION=" ap-southeast-1"
195+ export BUILDKITE_ORGANIZATION_SLUG=" example-org"
196+ export BUILDKITE_PIPELINE_SLUG=" example-pipeline"
197+ export BUILDKITE_PLUGIN_DOCKER_ECR_CACHE_SKIP_PULL_FROM_CACHE=" true"
198+ local expected_repository_name=" build-cache/example-org/example-pipeline"
199+ local repository_uri=" 1234567891012.dkr.ecr.ap-southeast-1.amazonaws.com/${expected_repository_name} "
200+
201+ stub aws \
202+ " sts get-caller-identity --query Account --output text : echo 1234567891012" \
203+ " ecr get-login-password --region ap-southeast-1 : echo secure-ecr-password" \
204+ " ecr describe-repositories --repository-names ${expected_repository_name} --output text --query repositories[0].registryId : echo looked up repository" \
205+ " ecr describe-repositories --repository-names ${expected_repository_name} --output text --query repositories[0].repositoryArn : echo arn:aws:ecr:ap-southeast-1:1234567891012:repository/${expected_repository_name} " \
206+ " ecr tag-resource --resource-arn arn:aws:ecr:ap-southeast-1:1234567891012:repository/build-cache/example-org/example-pipeline --cli-input-json \* : echo tag existing resource" \
207+ " ecr put-lifecycle-policy --repository-name build-cache/example-org/example-pipeline --lifecycle-policy-text \* : echo put lifecycle policy" \
208+ " ecr describe-repositories --repository-names ${expected_repository_name} --output text --query repositories[0].repositoryUri : echo ${repository_uri} " \
209+ " ecr list-images --repository-name ${expected_repository_name} --query imageIds[?imageTag==\'deadbee\'].imageTag --output text : echo 'deadbee'"
210+
211+ stub docker \
212+ " login --username AWS --password-stdin 1234567891012.dkr.ecr.ap-southeast-1.amazonaws.com : echo logging in to docker"
213+
214+ stub sha1sum \
215+ " Dockerfile : echo 'sha1sum(Dockerfile)'" \
216+ " : echo sha1sum" \
217+ " : echo sha1sum" \
218+ " : echo deadbee"
219+
220+ run " ${pre_command_hook} "
221+
222+ assert_success
223+ assert_output --partial " logging in to docker"
224+ assert_output --partial " looked up repository"
225+ assert_output --partial " Image exists, skipping pull"
187226 unstub aws
188227 unstub docker
189228 unstub sha1sum
0 commit comments