2
2
name : Build fat image
3
3
' on ' :
4
4
workflow_dispatch :
5
- inputs :
6
- use_RL8 :
7
- required : true
8
- description : Include RL8 image build
9
- type : boolean
10
- default : false
11
5
concurrency :
12
- group : ${{ github.ref }}-{{ matrix.os_version }} # to branch/PR + OS
6
+ group : ${{ github.ref }}-{{ matrix.os_version }}-{{ matrix.build }} # to branch/PR + OS + build
13
7
cancel-in-progress : true
14
8
jobs :
15
9
openstack :
16
10
name : openstack-imagebuild
17
11
runs-on : ubuntu-22.04
18
12
strategy :
19
13
matrix :
20
- os_version : [RL8, RL9]
21
- rl8_selected :
22
- - ${{ inputs.use_RL8 == true }} # only potentially true for workflow_dispatch
14
+ os_version :
15
+ - RL8
16
+ - RL9
17
+ build :
18
+ - openstack.openhpc
19
+ - openstack.openhpc-ofed
23
20
exclude :
24
21
- os_version : RL8
25
- rl8_selected : false
22
+ build : openstack.openhpc-ofed
23
+ - os_version : RL9
24
+ build : openstack.openhpc
26
25
env :
27
26
ANSIBLE_FORCE_COLOR : True
28
27
OS_CLOUD : openstack
@@ -63,23 +62,24 @@ jobs:
63
62
. environments/.stackhpc/activate
64
63
cd packer/
65
64
packer init .
66
- PACKER_LOG=1 packer build -on-error=${{ vars.PACKER_ON_ERROR }} -except=openstack.openhpc-extra -var-file=$PKR_VAR_environment_root/${{ vars.CI_CLOUD }}.pkrvars.hcl openstack.pkr.hcl
65
+ PACKER_LOG=1 packer build -on-error=${{ vars.PACKER_ON_ERROR }} -only={{ matrix.build }} -var-file=$PKR_VAR_environment_root/${{ vars.CI_CLOUD }}.pkrvars.hcl openstack.pkr.hcl
67
66
env :
68
67
PKR_VAR_os_version : ${{ matrix.os_version }}
69
68
70
69
- name : Get created image names from manifest
71
70
id : manifest
72
71
run : |
73
72
. venv/bin/activate
74
- for IMAGE_ID in $(jq --raw-output '.builds[].artifact_id' packer/packer-manifest.json)
75
- do
76
- while ! openstack image show -f value -c name $IMAGE_ID; do
77
- sleep 5
78
- done
79
- IMAGE_NAME=$(openstack image show -f value -c name $IMAGE_ID)
80
- echo "image-name=${IMAGE_NAME}" >> "$GITHUB_OUTPUT"
81
- echo "image-id=$IMAGE_ID" >> "$GITHUB_OUTPUT"
73
+ IMAGE_ID=$(jq --raw-output '.builds[-1].artifact_id' packer/packer-manifest.json)
74
+ while ! openstack image show -f value -c name $IMAGE_ID; do
75
+ sleep 5
82
76
done
77
+ IMAGE_NAME=$(openstack image show -f value -c name $IMAGE_ID)
78
+ echo "image-name=${IMAGE_NAME}" >> "$GITHUB_OUTPUT"
79
+ echo "image-id=$IMAGE_ID" >> "$GITHUB_OUTPUT"
80
+
81
+ - name : Download image
82
+ run : openstack image save --file ${{ steps.manifest.outputs.image-name }}.qcow2 ${{ steps.manifest.outputs.image-name }}
83
83
84
84
- name : Set up QEMU
85
85
uses : docker/setup-qemu-action@v3
95
95
- name : mount qcow2 file
96
96
run : sudo guestmount -a ${{ steps.manifest.outputs.image-name }}.qcow2 -i --ro -o allow_other './${{ steps.manifest.outputs.image-name }}'
97
97
98
-
99
98
- name : Run Trivy vulnerability scanner
100
99
uses :
aquasecurity/[email protected]
101
100
with :
@@ -110,7 +109,7 @@ jobs:
110
109
uses : github/codeql-action/upload-sarif@v3
111
110
with :
112
111
sarif_file : " ${{ steps.manifest.outputs.image-name }}.sarif"
113
- category : " ${{ matrix.os_version }}"
112
+ category : " ${{ matrix.os_version }}-${{ matrix.build }} "
114
113
115
114
- name : Fail if scan has CRITICAL vulnerabilities
116
115
uses :
aquasecurity/[email protected]
0 commit comments