2323 secrets :
2424 gke-credentials :
2525 description : Google Kubernetes Engine Credentials as JSON
26- required : true
26+ required : false
2727 gke-project :
2828 description : Google Kubernetes Engine Project
29- required : true
29+ required : false
3030 gh-key :
3131 description : GitHub Key
32- required : true
32+ required : false
3333 outputs :
3434 version :
3535 description : The Docker Image Version
@@ -52,22 +52,26 @@ jobs:
5252 uses : docker/setup-buildx-action@v3
5353 - name : Auth gcloud
5454 id : auth
55+ if : inputs.push
5556 uses : google-github-actions/auth@v2
5657 with :
5758 token_format : access_token
5859 credentials_json : ${{ secrets.gke-credentials }}
5960 - name : Login to GAR
61+ if : inputs.push
6062 uses : docker/login-action@v3
6163 with :
6264 registry : europe-west1-docker.pkg.dev
6365 username : oauth2accesstoken
6466 password : ${{ steps.auth.outputs.access_token }}
6567 - name : Configure gcloud
68+ if : inputs.push
6669 run : |
6770 gcloud --quiet auth configure-docker
6871 gcloud container clusters get-credentials ${{ inputs.gke-cluster }} --zone ${{ inputs.gke-zone }}
6972 - name : Docker metadata
7073 id : docker-metadata
74+ if : inputs.push
7175 uses : docker/metadata-action@v4
7276 with :
7377 images : europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/php
8185 target : php_prod
8286 pull : true
8387 push : ${{ inputs.push }}
84- tags : ${{ steps.docker-metadata.outputs.tags }}
85- labels : ${{ steps.docker-metadata.outputs.labels }}
86- cache-from : |
87- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/caddy:latest
88- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/php:latest
89- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/caddy:${{ github.sha }}
90- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/php:${{ github.sha }}
88+ tags : ${{ inputs.push && steps.docker-metadata.outputs.tags || '' }}
89+ labels : ${{ inputs.push && steps.docker-metadata.outputs.labels || '' }}
90+ cache-from : ${{ inputs.push && format('type=registry,ref=europe-west1-docker.pkg.dev/{0}/website/php:latest', secrets.gke-project) || '' }}
9191 cache-to : type=inline
9292 outputs :
9393 version : ${{ github.sha }}
@@ -109,22 +109,26 @@ jobs:
109109 uses : docker/setup-buildx-action@v3
110110 - name : Auth gcloud
111111 id : auth
112+ if : inputs.push
112113 uses : google-github-actions/auth@v2
113114 with :
114115 token_format : access_token
115116 credentials_json : ${{ secrets.gke-credentials }}
116117 - name : Login to GAR
118+ if : inputs.push
117119 uses : docker/login-action@v3
118120 with :
119121 registry : europe-west1-docker.pkg.dev
120122 username : oauth2accesstoken
121123 password : ${{ steps.auth.outputs.access_token }}
122124 - name : Configure gcloud
125+ if : inputs.push
123126 run : |
124127 gcloud --quiet auth configure-docker
125128 gcloud container clusters get-credentials ${{ inputs.gke-cluster }} --zone ${{ inputs.gke-zone }}
126129 - name : Docker metadata
127130 id : docker-metadata
131+ if : inputs.push
128132 uses : docker/metadata-action@v4
129133 with :
130134 images : europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/caddy
@@ -138,13 +142,9 @@ jobs:
138142 target : caddy_prod
139143 pull : true
140144 push : ${{ inputs.push }}
141- tags : ${{ steps.docker-metadata.outputs.tags }}
142- labels : ${{ steps.docker-metadata.outputs.labels }}
143- cache-from : |
144- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/caddy:latest
145- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/php:latest
146- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/caddy:${{ github.sha }}
147- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/php:${{ github.sha }}
145+ tags : ${{ inputs.push && steps.docker-metadata.outputs.tags || '' }}
146+ labels : ${{ inputs.push && steps.docker-metadata.outputs.labels || '' }}
147+ cache-from : ${{ inputs.push && format('type=registry,ref=europe-west1-docker.pkg.dev/{0}/website/caddy:latest', secrets.gke-project) || '' }}
148148 cache-to : type=inline
149149 outputs :
150150 version : ${{ github.sha }}
@@ -166,35 +166,38 @@ jobs:
166166 uses : docker/setup-buildx-action@v3
167167 - name : Auth gcloud
168168 id : auth
169+ if : inputs.push
169170 uses : google-github-actions/auth@v2
170171 with :
171172 token_format : access_token
172173 credentials_json : ${{ secrets.gke-credentials }}
173174 - name : Login to GAR
175+ if : inputs.push
174176 uses : docker/login-action@v3
175177 with :
176178 registry : europe-west1-docker.pkg.dev
177179 username : oauth2accesstoken
178180 password : ${{ steps.auth.outputs.access_token }}
179181 - name : Configure gcloud
182+ if : inputs.push
180183 run : |
181184 gcloud --quiet auth configure-docker
182185 gcloud container clusters get-credentials ${{ inputs.gke-cluster }} --zone ${{ inputs.gke-zone }}
183186 - name : Docker metadata
184187 id : docker-metadata
188+ if : inputs.push
185189 uses : docker/metadata-action@v4
186190 with :
187191 images : europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/pwa
188192 tags : |
189193 type=raw,value=${{ github.sha }},priority=9999
190194 ${{ inputs.tags }}
191195 - name : Define URL
192- run : |
196+ run : |
193197 set -o pipefail
194198 if [[ "${{ github.ref }}" == 'refs/heads/main' ]]; then
195199 echo "URL=api-platform.com" >> "$GITHUB_ENV"
196200 else
197- CONTEXT=nonprod
198201 if [ "$GITHUB_EVENT_NAME" == "pull_request" ]; then
199202 export RELEASE_NAME=pr-$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH")
200203 else
@@ -203,19 +206,17 @@ jobs:
203206 echo "URL=$RELEASE_NAME.apip.preprod-tilleuls.ovh" >> "$GITHUB_ENV"
204207 fi
205208 - name : Build and push
206- uses : docker/build-push-action@v4
209+ uses : docker/build-push-action@v4
207210 with :
208211 context : ./pwa
209212 target : prod
210213 pull : true
211214 push : ${{ inputs.push }}
212- tags : ${{ steps.docker-metadata.outputs.tags }}
213- labels : ${{ steps.docker-metadata.outputs.labels }}
215+ tags : ${{ inputs.push && steps.docker-metadata.outputs.tags || '' }}
216+ labels : ${{ inputs.push && steps.docker-metadata.outputs.labels || '' }}
214217 build-args : |
215- NEXT_ROOT_URL=${{ env.URL }}
216- cache-from : |
217- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/pwa:latest
218- type=registry,ref=europe-west1-docker.pkg.dev/${{ secrets.gke-project }}/website/pwa:${{ github.sha }}
218+ NEXT_ROOT_URL=${{ env.URL }}
219+ cache-from : ${{ inputs.push && format('type=registry,ref=europe-west1-docker.pkg.dev/{0}/website/pwa:latest', secrets.gke-project) || '' }}
219220 cache-to : type=inline
220221 secrets : |
221222 "GITHUB_KEY=${{ secrets.gh-key }}"
0 commit comments