@@ -101,10 +101,45 @@ jobs:
101101 run : |
102102 echo "${{ steps.datetime_tag.outputs.datetime_tag }}"
103103
104+ # Dynamically define job matrix.
105+ # We need a separate matrix entry for each distribution, when the relevant input is true.
106+ # https://stackoverflow.com/questions/65384420/how-do-i-make-a-github-action-matrix-element-conditional
107+ # NOTE(bbezak): Both amd64 and aarch64 need to be built in a single workflow to create a multi-architecture manifest.
108+ # For now include only RL9 in aarch64
109+ - name : Generate build matrix
110+ id : set-matrix
111+ run : |
112+ output="{'distro': ["
113+ if [[ ${{ inputs.rocky-linux-9 }} == 'true' ]]; then
114+ output+="{'name': 'rocky', 'release': 9, 'arch': 'amd64'},"
115+ output+="{'name': 'rocky', 'release': 9, 'arch': 'aarch64'},"
116+ fi
117+ if [[ ${{ inputs.ubuntu-jammy }} == 'true' ]]; then
118+ output+="{'name': 'ubuntu', 'release': 'jammy', 'arch': 'amd64'},"
119+ fi
120+ if [[ ${{ inputs.ubuntu-noble }} == 'true' ]]; then
121+ output+="{'name': 'ubuntu', 'release': 'noble', 'arch': 'amd64'},"
122+ fi
123+ # remove trailing comma
124+ output="${output%,}"
125+ output+="]}"
126+ echo "matrix=$output" >> $GITHUB_OUTPUT
127+
128+ - name : Display container datetime tag
129+ run : |
130+ echo "${{ steps.datetime_tag.outputs.datetime_tag }}"
131+
132+ runner-selection :
133+ uses : ./.github/workflows/runner-selector.yml
134+ with :
135+ runner_env : ${{ inputs.runner_env }}
136+
104137 container-image-build :
105138 name : Build Kolla container images
106139 if : github.repository == 'stackhpc/stackhpc-kayobe-config'
107- runs-on : arc-skc-container-image-builder-runner
140+ runs-on : ${{ matrix.distro.arch == 'aarch64'
141+ && fromJson('["self-hosted","sms","arm64"]')
142+ || needs.runner-selection.outputs.runner_name_container_image_build }}
108143 timeout-minutes : 720
109144 permissions : {}
110145 strategy :
@@ -144,7 +179,7 @@ jobs:
144179
145180 - name : Install Trivy
146181 run : |
147- curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b /usr/local/bin v0.49.0
182+ curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b /usr/local/bin v0.67.2
148183
149184 - name : Install yq
150185 run : |
@@ -164,7 +199,7 @@ jobs:
164199 - name : Install Docker Python SDK
165200 run : |
166201 sudo pip install docker 'requests<2.32.0'
167-
202+
168203 - name : Get Kolla tag
169204 id : write-kolla-tag
170205 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
0 commit comments