74
74
- name : Generate build matrix
75
75
id : set-matrix
76
76
run : |
77
- comma=""
78
77
echo -n "matrix={\"distro\": [" >> $GITHUB_OUTPUT
78
+ comma=""
79
79
if [[ ${{ inputs.rocky-linux-9 }} == 'true' ]]; then
80
80
echo -n "$comma\"rocky\"" >> $GITHUB_OUTPUT
81
81
comma=", "
84
84
echo -n "$comma\"ubuntu\"" >> $GITHUB_OUTPUT
85
85
comma=", "
86
86
fi
87
- echo "]}" >> $GITHUB_OUTPUT
87
+ echo "], \"arch\": [\"amd64\", \"aarch64\"] }" >> $GITHUB_OUTPUT
88
88
89
89
- name : Display container datetime tag
90
90
run : |
99
99
strategy :
100
100
fail-fast : false
101
101
matrix : ${{ fromJson(needs.generate-tag.outputs.matrix) }}
102
+ # Exclude ubuntu aarch64 builds for now
103
+ exclude :
104
+ - distro : ubuntu
105
+ arch : aarch64
102
106
needs :
103
107
- generate-tag
104
108
steps :
@@ -149,7 +153,12 @@ jobs:
149
153
150
154
- name : Get Kolla tag
151
155
id : write-kolla-tag
152
- run : echo "kolla-tag=${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ matrix.distro == 'rocky' && '9' || 'jammy' }}-${{ needs.generate-tag.outputs.datetime_tag }}" >> $GITHUB_OUTPUT
156
+ run : |
157
+ kolla_tag="${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ needs.generate-tag.outputs.datetime_tag }}"
158
+ if [[ "${{ matrix.distro }}" == 'rocky' ]]; then
159
+ kolla_tag="$kolla_tag-${{ matrix.arch }}"
160
+ fi
161
+ echo "kolla-tag=$kolla_tag" >> $GITHUB_OUTPUT
153
162
154
163
- name : Configure localhost as a seed
155
164
run : |
@@ -179,8 +188,11 @@ jobs:
179
188
continue-on-error : true
180
189
run : |
181
190
args="${{ inputs.regexes }}"
191
+ if [[ "${{ matrix.arch }}" = 'aarch64' ]]; then
192
+ args="$args -e kolla_base_arch=${{ matrix.arch }}"
193
+ fi
182
194
args="$args -e kolla_base_distro=${{ matrix.distro }}"
183
- args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
195
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}
184
196
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
185
197
source venvs/kayobe/bin/activate &&
186
198
source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -193,26 +205,37 @@ jobs:
193
205
run : sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-overcloud.log
194
206
if : inputs.overcloud
195
207
208
+ - name : Copy build configs to output directory
209
+ run : sudo cp -rnL /opt/kayobe/etc/kolla/* image-build-logs/
210
+ if : inputs.overcloud
211
+
212
+ - name : Get Kolla tag for seed images
213
+ id : write-kolla-tag-seed
214
+ run : |
215
+ kolla_tag_seed="${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ needs.generate-tag.outputs.datetime_tag }}"
216
+ echo "kolla-tag-seed=$kolla_tag_seed" >> $GITHUB_OUTPUT
217
+ if : inputs.seed
218
+
196
219
- name : Build kolla seed images
197
220
id : build_seed_images
198
221
continue-on-error : true
199
222
run : |
200
223
args="-e kolla_base_distro=${{ matrix.distro }}"
201
- args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
224
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag-seed .outputs.kolla-tag-seed }}"
202
225
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
203
226
source venvs/kayobe/bin/activate &&
204
227
source src/kayobe-config/kayobe-env --environment ci-builder &&
205
228
kayobe seed container image build $args
206
229
env :
207
230
KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
208
- if : inputs.seed
231
+ if : inputs.seed && matrix.arch == 'amd64'
209
232
210
233
- name : Copy seed container image build logs to output directory
211
234
run : sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-seed.log
212
235
if : inputs.seed
213
236
214
237
- name : Get built container images
215
- run : docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}" > ${{ matrix.distro }}-container-images
238
+ run : docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}* " > ${{ matrix.distro }}-container-images
216
239
217
240
- name : Fail if no images have been built
218
241
run : if [ $(wc -l < ${{ matrix.distro }}-container-images) -le 1 ]; then exit 1; fi
@@ -273,7 +296,7 @@ jobs:
273
296
- name : Upload output artifact
274
297
uses : actions/upload-artifact@v4
275
298
with :
276
- name : ${{ matrix.distro }}-logs
299
+ name : ${{ matrix.distro }}-${{ matrix.arch }}- logs
277
300
path : image-build-logs
278
301
retention-days : 7
279
302
if : ${{ !cancelled() }}
0 commit comments