3838 id-token : write
3939 env :
4040 IMAGE_NAME : ${{ needs.image-details.outputs.base-name }}
41- # Cannot reference IMAGE_NAME as it does not exist yet
4241 IMAGE_URL : ${{ needs.image-details.outputs.base-url }}
42+ IMAGE_DIR : build/standard
4343
4444 steps :
4545 - name : ' Set up Ruby for generation tool'
5656
5757 - name : ' Run file generation'
5858 id : file-gen
59- run : |
60- bash build.sh --dir build/standard --version dev
61- echo "PATH=$(pwd)/build/standard" >> $GITHUB_OUTPUT
59+ run : bash build.sh --dir ${{ env.IMAGE_DIR }} --version dev
6260
6361 - name : ' Set up QEMU'
6462 uses : docker/setup-qemu-action@v3
7977 uses : docker/build-push-action@v6
8078 with :
8179 platforms : linux/amd64,linux/arm64
82- # context: ${{ steps.file-gen.outputs.PATH }}
83- # file: ${{ steps.file-gen.outputs.PATH }}/docker/Dockerfile
8480 context : .
85- file : build/standard /docker/Dockerfile
81+ file : ${{ env.IMAGE_DIR }} /docker/Dockerfile
8682 build-args : |
8783 CONTAINER_VERSION=${{ github.ref_name }}
8884 IMAGE_NAME=${{ env.IMAGE_NAME }}
@@ -100,11 +96,10 @@ jobs:
10096 attestations : write
10197 id-token : write
10298 env :
103- VARIANT : ' plugins'
104- # Cannot reference VARIANT as it does not exist yet
99+ # Image variant name is drawn from final `--dir` entry in file generation command line
105100 IMAGE_NAME : ${{ needs.image-details.outputs.base-name }}-plugins
106- # Cannot reference IMAGE_NAME as it does not exist yet
107101 IMAGE_URL : ${{ needs.image-details.outputs.base-url }}-plugins
102+ IMAGE_DIR : build/plugins
108103
109104 steps :
110105 - name : ' Set up Ruby for generation tool'
@@ -120,7 +115,7 @@ jobs:
120115 run : bundle install
121116
122117 - name : ' Run file generation'
123- run : bash build.sh --dir build/standard --dir build/plugins --version dev
118+ run : bash build.sh --dir build/standard --dir ${{ env.IMAGE_DIR }} --version dev
124119
125120 - name : ' Set up QEMU'
126121 uses : docker/setup-qemu-action@v3
@@ -140,11 +135,15 @@ jobs:
140135 uses : docker/build-push-action@v6
141136 with :
142137 platforms : linux/amd64,linux/arm64
143- file : build/${{ env.VARIANT }}/docker/Dockerfile
138+ context : .
139+ file : ${{ env.IMAGE_DIR }}/docker/Dockerfile
144140 build-args : |
145141 CONTAINER_VERSION=${{ github.ref_name }}
146142 IMAGE_NAME=${{ env.IMAGE_NAME }}
147143 tags : ${{ env.IMAGE_URL }}:latest
144+ # Connect Docker driver to GitHub Action cache service
145+ cache-from : type=gha
146+ cache-to : type=gha,mode=max
148147
149148 madsciencelab-arm-none-eabi :
150149 runs-on : ubuntu-latest
@@ -155,11 +154,10 @@ jobs:
155154 attestations : write
156155 id-token : write
157156 env :
158- VARIANT : ' arm-none-eabi'
159- # Cannot reference VARIANT as it does not exist yet
157+ # Image variant name is drawn from final `--dir` entry in file generation command line
160158 IMAGE_NAME : ${{ needs.image-details.outputs.base-name }}-arm-none-eabi
161- # Cannot reference IMAGE_NAME as it does not exist yet
162159 IMAGE_URL : ${{ needs.image-details.outputs.base-url }}-arm-none-eabi
160+ IMAGE_DIR : build/arm-none-eabi
163161
164162 steps :
165163 - name : ' Set up Ruby for generation tool'
@@ -175,7 +173,7 @@ jobs:
175173 run : bundle install
176174
177175 - name : ' Run file generation'
178- run : bash build.sh --dir build/arm-none-eabi --version dev
176+ run : bash build.sh --dir ${{ env.IMAGE_DIR }} --version dev
179177
180178 - name : ' Set up QEMU'
181179 uses : docker/setup-qemu-action@v3
@@ -195,11 +193,15 @@ jobs:
195193 uses : docker/build-push-action@v6
196194 with :
197195 platforms : linux/amd64,linux/arm64
198- file : build/${{ env.VARIANT }}/docker/Dockerfile
196+ context : .
197+ file : ${{ env.IMAGE_DIR }}/docker/Dockerfile
199198 build-args : |
200199 CONTAINER_VERSION=${{ github.ref_name }}
201200 IMAGE_NAME=${{ env.IMAGE_NAME }}
202201 tags : ${{ env.IMAGE_URL }}:latest
202+ # Connect Docker driver to GitHub Action cache service
203+ cache-from : type=gha
204+ cache-to : type=gha,mode=max
203205
204206 madsciencelab-arm-none-eabi-plugins :
205207 runs-on : ubuntu-latest
@@ -210,11 +212,10 @@ jobs:
210212 attestations : write
211213 id-token : write
212214 env :
213- VARIANT : ' arm-none-eabi-plugins'
214- # Cannot reference VARIANT as it does not exist yet
215+ # Image variant name is drawn from final `--dir` entry in file generation command line
215216 IMAGE_NAME : ${{ needs.image-details.outputs.base-name }}-arm-none-eabi-plugins
216- # Cannot reference IMAGE_NAME as it does not exist yet
217217 IMAGE_URL : ${{ needs.image-details.outputs.base-url }}-arm-none-eabi-plugins
218+ IMAGE_DIR : build/arm-none-eabi-plugins
218219
219220 steps :
220221 - name : ' Set up Ruby for generation tool'
@@ -230,7 +231,7 @@ jobs:
230231 run : bundle install
231232
232233 - name : ' Run file generation'
233- run : bash build.sh --dir build/arm-none-eabi --dir build/plugins --dir build/arm-none-eabi-plugins --version dev
234+ run : bash build.sh --dir build/arm-none-eabi --dir build/plugins --dir ${{ env.IMAGE_DIR }} --version dev
234235
235236 - name : ' Set up QEMU'
236237 uses : docker/setup-qemu-action@v3
@@ -250,11 +251,15 @@ jobs:
250251 uses : docker/build-push-action@v6
251252 with :
252253 platforms : linux/amd64,linux/arm64
253- file : build/${{ env.VARIANT }}/docker/Dockerfile
254+ context : .
255+ file : ${{ env.IMAGE_DIR }}/docker/Dockerfile
254256 build-args : |
255257 CONTAINER_VERSION=${{ github.ref_name }}
256258 IMAGE_NAME=${{ env.IMAGE_NAME }}
257259 tags : ${{ env.IMAGE_URL }}:latest
260+ # Connect Docker driver to GitHub Action cache service
261+ cache-from : type=gha
262+ cache-to : type=gha,mode=max
258263
259264 dockerfiles-prerelease :
260265 runs-on : ubuntu-latest
0 commit comments