Skip to content

Commit 45002aa

Browse files
committed
Add secrets support
Signed-off-by: Jason Dictos <[email protected]>
1 parent c87d1c0 commit 45002aa

File tree

4 files changed

+111
-19
lines changed

4 files changed

+111
-19
lines changed

assets/out

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ tag_prefix=$(jq -r '.params.tag_prefix // ""' < $payload)
7878
additional_tags=$(jq -r '.params.additional_tags // ""' < $payload)
7979
need_tag_as_latest=$(jq -r '.params.tag_as_latest // "false"' < $payload)
8080
build_args=$(jq -r '.params.build_args // {}' < $payload)
81+
secrets=$(jq -r '.params.secrets // {}' < $payload)
8182
build_args_file=$(jq -r '.params.build_args_file // ""' < $payload)
8283
labels=$(jq -r '.params.labels // {}' < $payload)
8384
labels_file=$(jq -r '.params.labels_file // ""' < $payload)
@@ -215,6 +216,31 @@ elif [ -n "$build" ]; then
215216
fi
216217
fi
217218

219+
expanded_secrets=()
220+
221+
secret_keys=($(echo "$secrets" | jq -r 'keys | join(" ")'))
222+
if [ "${#secret_keys[@]}" -gt 0 ]; then
223+
for key in "${secret_keys[@]}"; do
224+
value=$(echo "$secrets" | jq -r --arg "k" "$key" '.[$k]')
225+
for var in BUILD_ID BUILD_NAME BUILD_JOB_NAME BUILD_PIPELINE_NAME BUILD_TEAM_NAME ATC_EXTERNAL_URL; do
226+
value="${value//\$$var/${!var:-}}"
227+
value="${value//\$\{$var\}/${!var:-}}"
228+
done
229+
secret="id=${key}"
230+
sub=$(jq -r ".params.secrets.${key} // {}" < $payload)
231+
sub_keys=($(echo "$sub" | jq -r 'keys | join(" ")'))
232+
echo "Entering parser ${secret}"
233+
if [ "${#sub_keys[@]}" -gt 0 ]; then
234+
expanded_secrets+=("--secret")
235+
for key in "${sub_keys[@]}"; do
236+
value=$(echo "$sub" | jq -r --arg "k" "$key" '.[$k]')
237+
secret="${secret},${key}=${value}"
238+
done
239+
expanded_secrets+=("${secret}")
240+
fi
241+
done
242+
fi
243+
218244
expanded_labels=()
219245

220246
label_keys=($(echo "$labels" | jq -r 'keys | join(" ")'))
@@ -261,7 +287,7 @@ elif [ -n "$build" ]; then
261287
# NOTE: deactivate amazon-ecr-credential-helper so that builds go through with the DOCKER_BUILDKIT set
262288
cp ~/.docker/config.json ~/.docker/config.json.bak
263289
cat <<< "$(jq 'del(.credsStore)' ~/.docker/config.json)" > ~/.docker/config.json
264-
docker build -t "${repository}:${tag_name}" "${target[@]}" "${expanded_build_args[@]}" "${expanded_labels[@]}" "${ssh_args[@]}" -f "$dockerfile" $cache_from "$build"
290+
docker build -t "${repository}:${tag_name}" "${target[@]}" "${expanded_build_args[@]}" "${expanded_secrets[@]}" "${expanded_labels[@]}" "${ssh_args[@]}" -f "$dockerfile" $cache_from "$build"
265291
mv ~/.docker/config.json.bak ~/.docker/config.json # This restores the credsStore: ecr-login to config.json if needed
266292

267293
elif [ -n "$load_file" ]; then

go.mod

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/concourse/docker-image-resource
33
go 1.20
44

55
require (
6-
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230519004202-7f2db5bd753e
6+
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240401215612-c264f63f0692
77
github.com/cihub/seelog v0.0.0-20160420184328-a98235bd6d92
88
github.com/concourse/retryhttp v0.0.0-20160627222715-dd24ee5a434d
99
github.com/docker/distribution v2.8.2+incompatible
@@ -16,23 +16,24 @@ require (
1616
)
1717

1818
require (
19-
github.com/aws/aws-sdk-go-v2 v1.18.0 // indirect
20-
github.com/aws/aws-sdk-go-v2/config v1.18.25 // indirect
21-
github.com/aws/aws-sdk-go-v2/credentials v1.13.24 // indirect
22-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect
23-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect
24-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect
25-
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect
26-
github.com/aws/aws-sdk-go-v2/service/ecr v1.18.11 // indirect
27-
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.2 // indirect
28-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 // indirect
29-
github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 // indirect
30-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 // indirect
31-
github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 // indirect
32-
github.com/aws/smithy-go v1.13.5 // indirect
19+
github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect
20+
github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect
21+
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
22+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
23+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
24+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
25+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
26+
github.com/aws/aws-sdk-go-v2/service/ecr v1.27.4 // indirect
27+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.4 // indirect
28+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
29+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
30+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
31+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
32+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
33+
github.com/aws/smithy-go v1.20.2 // indirect
3334
github.com/beorn7/perks v1.0.1 // indirect
3435
github.com/cespare/xxhash/v2 v2.2.0 // indirect
35-
github.com/docker/docker-credential-helpers v0.7.0 // indirect
36+
github.com/docker/docker-credential-helpers v0.8.1 // indirect
3637
github.com/docker/go-metrics v0.0.2-0.20221207153146-523432a393ef // indirect
3738
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect
3839
github.com/golang/protobuf v1.5.3 // indirect
@@ -47,8 +48,8 @@ require (
4748
github.com/prometheus/client_model v0.4.0 // indirect
4849
github.com/prometheus/common v0.44.0 // indirect
4950
github.com/prometheus/procfs v0.9.0 // indirect
50-
github.com/sirupsen/logrus v1.9.2 // indirect
51-
golang.org/x/sys v0.8.0 // indirect
51+
github.com/sirupsen/logrus v1.9.3 // indirect
52+
golang.org/x/sys v0.19.0 // indirect
5253
google.golang.org/protobuf v1.33.0 // indirect
5354
gopkg.in/yaml.v2 v2.4.0 // indirect
5455
)

go.sum

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,34 +40,66 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
4040
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
4141
github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY=
4242
github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
43+
github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=
44+
github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
4345
github.com/aws/aws-sdk-go-v2/config v1.18.25 h1:JuYyZcnMPBiFqn87L2cRppo+rNwgah6YwD3VuyvaW6Q=
4446
github.com/aws/aws-sdk-go-v2/config v1.18.25/go.mod h1:dZnYpD5wTW/dQF0rRNLVypB396zWCcPiBIvdvSWHEg4=
47+
github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA=
48+
github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE=
4549
github.com/aws/aws-sdk-go-v2/credentials v1.13.24 h1:PjiYyls3QdCrzqUN35jMWtUK1vqVZ+zLfdOa/UPFDp0=
4650
github.com/aws/aws-sdk-go-v2/credentials v1.13.24/go.mod h1:jYPYi99wUOPIFi0rhiOvXeSEReVOzBqFNOX5bXYoG2o=
51+
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs=
52+
github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo=
4753
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 h1:jJPgroehGvjrde3XufFIJUZVK5A2L9a3KwSFgKy9n8w=
4854
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3/go.mod h1:4Q0UFP0YJf0NrsEuEYHpM9fTSEVnD16Z3uyEF7J9JGM=
55+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
56+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
4957
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4=
5058
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw=
59+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
60+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
5161
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk=
5262
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM=
63+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
64+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
5365
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 h1:gGLG7yKaXG02/jBlg210R7VgQIotiQntNhsCFejawx8=
5466
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc=
67+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
68+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
5569
github.com/aws/aws-sdk-go-v2/service/ecr v1.18.11 h1:wlTgmb/sCmVRJrN5De3CiHj4v/bTCgL5+qpdEd0CPtw=
5670
github.com/aws/aws-sdk-go-v2/service/ecr v1.18.11/go.mod h1:Ce1q2jlNm8BVpjLaOnwnm5v2RClAbK6txwPljFzyW6c=
71+
github.com/aws/aws-sdk-go-v2/service/ecr v1.27.4 h1:Qr9W21mzWT3RhfYn9iAux7CeRIdbnTAqmiOlASqQgZI=
72+
github.com/aws/aws-sdk-go-v2/service/ecr v1.27.4/go.mod h1:if7ybzzjOmDB8pat9FE35AHTY6ZxlYSy3YviSmFZv8c=
5773
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.2 h1:yflJrGmi1pXtP9lOpOeaNZyc0vXnJTuP2sor3nJcGGo=
5874
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.2/go.mod h1:uHtRE7aqXNmpeYL+7Ec7LacH5zC9+w2T5MBOeEKDdu0=
75+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.4 h1:aNuiieMaS2IHxqAsTdM/pjHyY1aoaDLBGLqpNnFMMqk=
76+
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.23.4/go.mod h1:8pvvNAklmq+hKmqyvFoMRg0bwg9sdGOvdwximmKiKP0=
77+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
78+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
5979
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 h1:0iKliEXAcCa2qVtRs7Ot5hItA2MsufrphbRFlz1Owxo=
6080
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw=
81+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
82+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
6183
github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 h1:UBQjaMTCKwyUYwiVnUt6toEJwGXsLBI6al083tpjJzY=
6284
github.com/aws/aws-sdk-go-v2/service/sso v1.12.10/go.mod h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI=
85+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w=
86+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
6387
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 h1:PkHIIJs8qvq0e5QybnZoG1K/9QTrLr9OsqCIo59jOBA=
6488
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10/go.mod h1:AFvkxc8xfBe8XA+5St5XIHHrQQtkxqrRincx4hmMHOk=
89+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE=
90+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
6591
github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 h1:2DQLAKDteoEDI8zpCzqBMaZlJuoE9iTYD0gFmXVax9E=
6692
github.com/aws/aws-sdk-go-v2/service/sts v1.19.0/go.mod h1:BgQOMsg8av8jset59jelyPW7NoZcZXLVpDsXunGDrk8=
93+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU=
94+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw=
6795
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
6896
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
97+
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
98+
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
6999
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230519004202-7f2db5bd753e h1:hli0IOU73/tNWARHav2a41uMg7arHx0Qbhgcm4bDKXI=
70100
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230519004202-7f2db5bd753e/go.mod h1:cheRroDS4qmOzi+Ue/oMHG4AV6n9F52W5QFdEKU59a0=
101+
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240401215612-c264f63f0692 h1:VoWlMBzEt5H8yDryLu5IcpzEN+9FJTHBBYiOOmBa9Ec=
102+
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240401215612-c264f63f0692/go.mod h1:a8Yox5hpLONNMz3VO4Bt3J7xuTtTBOo3KbvTnU1NMds=
71103
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
72104
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
73105
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -94,6 +126,8 @@ github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m3
94126
github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
95127
github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=
96128
github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0=
129+
github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo=
130+
github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
97131
github.com/docker/go-metrics v0.0.2-0.20221207153146-523432a393ef h1:kah2DGwIVpbW2k1G6ru/ySIL3rdypw8amRhmaSAZYns=
98132
github.com/docker/go-metrics v0.0.2-0.20221207153146-523432a393ef/go.mod h1:knoTFU8fpXrUP2PSJT+OOB4d26o0s3l3JvW4pPp+GcQ=
99133
github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 h1:UhxFibDNY/bfvqU5CAUmr9zpesgbU6SWc8/B4mflAE4=
@@ -266,6 +300,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
266300
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
267301
github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y=
268302
github.com/sirupsen/logrus v1.9.2/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
303+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
304+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
269305
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
270306
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
271307
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
@@ -278,6 +314,7 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
278314
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
279315
github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8=
280316
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
317+
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
281318
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
282319
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
283320
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -413,6 +450,8 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc
413450
golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
414451
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
415452
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
453+
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
454+
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
416455
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
417456
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
418457
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

tests/out_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,32 @@ var _ = Describe("Out", func() {
133133
})
134134
})
135135

136+
Context("when secrets are provided", func() {
137+
It("passes the arguments correctly to the docker daemon", func() {
138+
session := put(map[string]interface{}{
139+
"source": map[string]interface{}{
140+
"repository": "test",
141+
},
142+
"params": map[string]interface{}{
143+
"build": "/docker-image-resource/tests/fixtures/build",
144+
"secrets": map[string]interface{}{
145+
"gh_token": map[string]interface{}{
146+
"env": "GITHUB_TOKEN",
147+
},
148+
"gh_action": map[string]string{
149+
"file": "/a/file/path.txt",
150+
},
151+
},
152+
},
153+
})
154+
155+
Expect(session.Err).To(gbytes.Say(dockerarg(`--secret`)))
156+
Expect(session.Err).To(gbytes.Say(dockerarg(`id=gh_token,env=GITHUB_TOKEN`)))
157+
Expect(session.Err).To(gbytes.Say(dockerarg(`--secret`)))
158+
Expect(session.Err).To(gbytes.Say(dockerarg(`id=gh_action,file=/a/file/path.txt`)))
159+
})
160+
})
161+
136162
Context("when labels are provided", func() {
137163
It("passes the labels correctly to the docker daemon", func() {
138164
session := put(map[string]interface{}{

0 commit comments

Comments
 (0)