7777 strategy :
7878 matrix :
7979 arch : ["arm64", "amd64"]
80+ variant : ["", "-nonroot"]
8081 include :
8182 - arch : amd64
8283 runner : ubuntu-24.04
@@ -104,34 +105,20 @@ jobs:
104105 uses : docker/setup-buildx-action@v3
105106 with :
106107 install : true
107- - name : Build
108+ - name : Build ${{ env.PULUMI_VERSION }}${{ matrix.variant }}-${{ matrix.arch }}
108109 run : |
109110 docker build \
110111 -f docker/pulumi/Dockerfile \
111112 --platform linux/${{ matrix.arch }} \
112- -t ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-${{ matrix.arch }} \
113+ -t ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}${{ matrix.variant }} -${{ matrix.arch }} \
113114 --target base \
114115 --build-arg PULUMI_VERSION=${{ env.PULUMI_VERSION }} \
115116 --load \
116117 docker/pulumi
117118 - name : Image Info
118119 run : |
119- docker image ls ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-${{ matrix.arch }}
120- docker history ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-${{ matrix.arch }}
121- - name : Build nonroot variant
122- run : |
123- docker build \
124- -f docker/pulumi/Dockerfile \
125- --platform linux/${{ matrix.arch }} \
126- -t ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-nonroot-${{ matrix.arch }} \
127- --target nonroot \
128- --build-arg PULUMI_VERSION=${{ env.PULUMI_VERSION }} \
129- --load \
130- docker/pulumi
131- - name : Image Info
132- run : |
133- docker image ls ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-nonroot-${{ matrix.arch }}
134- docker history ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-nonroot-${{ matrix.arch }}
120+ docker image ls ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}${{ matrix.variant }}-${{ matrix.arch }}
121+ docker history ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}${{ matrix.variant }}-${{ matrix.arch }}
135122 - name : Install go
136123 uses : actions/setup-go@v5
137124 with :
@@ -155,8 +142,8 @@ jobs:
155142 with :
156143 service_account : ${{ env.GCP_SERVICE_ACCOUNT_EMAIL }}
157144 workload_identity_provider : projects/${{ env.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ env.GCP_WORKLOAD_IDENTITY_POOL }}/providers/${{ env.GCP_WORKLOAD_IDENTITY_PROVIDER }}
158- - name : ' Set up Cloud SDK'
159- uses : ' google-github-actions/setup-gcloud@v2'
145+ - name : " Set up Cloud SDK"
146+ uses : " google-github-actions/setup-gcloud@v2"
160147 - name : Tests
161148 # Note we use /src/pulumi-test-containers as entrypoint and not bash to avoid bash
162149 # changing the environment in some way.
@@ -182,30 +169,8 @@ jobs:
182169 --mount type=bind,source=$GOOGLE_APPLICATION_CREDENTIALS,target=/src/creds.json \
183170 --volume /tmp:/src \
184171 --entrypoint /src/pulumi-test-containers \
185- ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-${{ matrix.arch }} \
186- -test.parallel=8 -test.timeout=1h -test.v | sed 's/.*/[root] &/' &
187- docker run \
188- -e RUN_CONTAINER_TESTS=true \
189- -e IMAGE_VARIANT=pulumi-nonroot \
190- -e PULUMI_ACCESS_TOKEN=${PULUMI_ACCESS_TOKEN} \
191- -e PULUMI_ORG=${PULUMI_ORG} \
192- -e ARM_CLIENT_ID=${ARM_CLIENT_ID} \
193- -e ARM_CLIENT_SECRET=${ARM_CLIENT_SECRET} \
194- -e ARM_TENANT_ID=${ARM_TENANT_ID} \
195- -e ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID} \
196- -e AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} \
197- -e AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} \
198- -e AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN} \
199- -e AWS_REGION=${AWS_REGION} \
200- -e GCP_PROJECT_NAME=${GCP_PROJECT_NAME} \
201- -e GCP_PROJECT_NUMBER=${GCP_PROJECT_NUMBER} \
202- -e GOOGLE_APPLICATION_CREDENTIALS=/src/creds.json \
203- --mount type=bind,source=$GOOGLE_APPLICATION_CREDENTIALS,target=/src/creds.json \
204- --volume /tmp:/src \
205- --entrypoint /src/pulumi-test-containers \
206- ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}-${{ matrix.arch }}-nonroot \
207- -test.parallel=8 -test.timeout=1h -test.v | sed 's/.*/[nonroot] &/' &
208- wait
172+ ${{ env.DOCKER_ORG }}/pulumi:${{ env.PULUMI_VERSION }}${{ matrix.variant }}-${{ matrix.arch }} \
173+ -test.parallel=8 -test.timeout=1h -test.v
209174
210175 provider-build-environment :
211176 name : Provider Build Environment image
@@ -276,8 +241,8 @@ jobs:
276241 with :
277242 service_account : ${{ env.GCP_SERVICE_ACCOUNT_EMAIL }}
278243 workload_identity_provider : projects/${{ env.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ env.GCP_WORKLOAD_IDENTITY_POOL }}/providers/${{ env.GCP_WORKLOAD_IDENTITY_PROVIDER }}
279- - name : ' Set up Cloud SDK'
280- uses : ' google-github-actions/setup-gcloud@v2'
244+ - name : " Set up Cloud SDK"
245+ uses : " google-github-actions/setup-gcloud@v2"
281246 - name : Tests
282247 run : |
283248 docker run \
@@ -419,8 +384,8 @@ jobs:
419384 with :
420385 service_account : ${{ env.GCP_SERVICE_ACCOUNT_EMAIL }}
421386 workload_identity_provider : projects/${{ env.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ env.GCP_WORKLOAD_IDENTITY_POOL }}/providers/${{ env.GCP_WORKLOAD_IDENTITY_PROVIDER }}
422- - name : ' Set up Cloud SDK'
423- uses : ' google-github-actions/setup-gcloud@v2'
387+ - name : " Set up Cloud SDK"
388+ uses : " google-github-actions/setup-gcloud@v2"
424389 - name : Tests
425390 run : |
426391 docker run \
@@ -538,8 +503,8 @@ jobs:
538503 with :
539504 service_account : ${{ env.GCP_SERVICE_ACCOUNT_EMAIL }}
540505 workload_identity_provider : projects/${{ env.GCP_PROJECT_NUMBER }}/locations/global/workloadIdentityPools/${{ env.GCP_WORKLOAD_IDENTITY_POOL }}/providers/${{ env.GCP_WORKLOAD_IDENTITY_PROVIDER }}
541- - name : ' Set up Cloud SDK'
542- uses : ' google-github-actions/setup-gcloud@v2'
506+ - name : " Set up Cloud SDK"
507+ uses : " google-github-actions/setup-gcloud@v2"
543508 - name : Tests
544509 run : |
545510 docker run \
0 commit comments