7474 - name : Generate build matrix
7575 id : set-matrix
7676 run : |
77- comma=""
7877 echo -n "matrix={\"distro\": [" >> $GITHUB_OUTPUT
78+ comma=""
7979 if [[ ${{ inputs.rocky-linux-9 }} == 'true' ]]; then
8080 echo -n "$comma\"rocky\"" >> $GITHUB_OUTPUT
8181 comma=", "
8484 echo -n "$comma\"ubuntu\"" >> $GITHUB_OUTPUT
8585 comma=", "
8686 fi
87- echo "]}" >> $GITHUB_OUTPUT
87+ echo "], \"arch\": [\"amd64\", \"aarch64\"] }" >> $GITHUB_OUTPUT
8888
8989 - name : Display container datetime tag
9090 run : |
9999 strategy :
100100 fail-fast : false
101101 matrix : ${{ fromJson(needs.generate-tag.outputs.matrix) }}
102+ # Exclude ubuntu aarch64 builds for now
103+ exclude :
104+ - distro : ubuntu
105+ arch : aarch64
102106 needs :
103107 - generate-tag
104108 steps :
@@ -149,7 +153,12 @@ jobs:
149153
150154 - name : Get Kolla tag
151155 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
153162
154163 - name : Configure localhost as a seed
155164 run : |
@@ -179,8 +188,11 @@ jobs:
179188 continue-on-error : true
180189 run : |
181190 args="${{ inputs.regexes }}"
191+ if [[ "${{ matrix.arch }}" = 'aarch64' ]]; then
192+ args="$args -e kolla_base_arch=${{ matrix.arch }}"
193+ fi
182194 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 }}
184196 args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
185197 source venvs/kayobe/bin/activate &&
186198 source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -193,26 +205,37 @@ jobs:
193205 run : sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-overcloud.log
194206 if : inputs.overcloud
195207
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+
196219 - name : Build kolla seed images
197220 id : build_seed_images
198221 continue-on-error : true
199222 run : |
200223 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 }}"
202225 args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
203226 source venvs/kayobe/bin/activate &&
204227 source src/kayobe-config/kayobe-env --environment ci-builder &&
205228 kayobe seed container image build $args
206229 env :
207230 KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
208- if : inputs.seed
231+ if : inputs.seed && matrix.arch == 'amd64'
209232
210233 - name : Copy seed container image build logs to output directory
211234 run : sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-seed.log
212235 if : inputs.seed
213236
214237 - 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
216239
217240 - name : Fail if no images have been built
218241 run : if [ $(wc -l < ${{ matrix.distro }}-container-images) -le 1 ]; then exit 1; fi
@@ -273,7 +296,7 @@ jobs:
273296 - name : Upload output artifact
274297 uses : actions/upload-artifact@v4
275298 with :
276- name : ${{ matrix.distro }}-logs
299+ name : ${{ matrix.distro }}-${{ matrix.arch }}- logs
277300 path : image-build-logs
278301 retention-days : 7
279302 if : ${{ !cancelled() }}
0 commit comments