1111 - SMS
1212 - ARCUS
1313 schedule :
14- - cron : ' 0 0 * * *' # Run at midnight
14+ - cron : ' 0 0 * * *' # Run at midnight on default branch
1515
1616jobs :
1717 openstack :
1818 name : openstack-imagebuild
1919 concurrency :
20- group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os_version }}-${{ matrix. build }} # to branch/PR + OS + build
20+ group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build.image_name }} # to branch/PR + OS
2121 cancel-in-progress : true
2222 runs-on : ubuntu-22.04
2323 strategy :
2424 fail-fast : false # allow other matrix jobs to continue even if one fails
2525 matrix : # build RL8, RL9
26- os_version :
27- - RL8
28- - RL9
2926 build :
30- - openstack.rocky-latest
27+ - image_name : rocky-latest-RL8
28+ source_image_name : Rocky-8-GenericCloud-Base-8.9-20231119.0.x86_64.qcow2
29+ inventory_groups : update
30+ - image_name : rocky-latest-RL9
31+ source_image_name : Rocky-9-GenericCloud-Base-9.4-20240523.0.x86_64.qcow2
32+ inventory_groups : update
3133 env :
3234 ANSIBLE_FORCE_COLOR : True
3335 OS_CLOUD : openstack
3436 CI_CLOUD : ${{ github.event.inputs.ci_cloud || vars.CI_CLOUD }}
35- SOURCE_IMAGES_MAP : |
36- {
37- "RL8": "Rocky-8-GenericCloud-Base-8.9-20231119.0.x86_64.qcow2",
38- "RL9": "Rocky-9-GenericCloud-Base-9.4-20240523.0.x86_64.qcow2"
39- }
37+ ARK_PASSWORD : ${{ secrets.ARK_PASSWORD }}
4038
4139 steps :
4240 - uses : actions/checkout@v2
@@ -82,15 +80,13 @@ jobs:
8280
8381 PACKER_LOG=1 packer build \
8482 -on-error=${{ vars.PACKER_ON_ERROR }} \
85- -only=${{ matrix.build }} \
8683 -var-file=$PKR_VAR_environment_root/${{ env.CI_CLOUD }}.pkrvars.hcl \
87- -var "source_image_name=${{ env.SOURCE_IMAGE }}" \
84+ -var "source_image_name=${{ matrix.build.source_image_name }}" \
85+ -var "image_name=${{ matrix.build.image_name }}" \
86+ -var "image_name_version=" \
87+ -var "inventory_groups=${{ matrix.build.inventory_groups }}" \
8888 openstack.pkr.hcl
8989
90- env :
91- PKR_VAR_os_version : ${{ matrix.os_version }}
92- SOURCE_IMAGE : ${{ fromJSON(env.SOURCE_IMAGES_MAP)[matrix.os_version] }}
93-
9490 - name : Get created image names from manifest
9591 id : manifest
9692 run : |
@@ -124,7 +120,7 @@ jobs:
124120 name : upload-nightly-targets
125121 needs : openstack
126122 concurrency :
127- group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os_version }}-${{ matrix.image }}-${{ matrix.target_cloud }}
123+ group : ${{ github.workflow }}-${{ github.ref }}-${{ matrix.build.image_name }}-${{ matrix.target_cloud }}
128124 cancel-in-progress : true
129125 runs-on : ubuntu-22.04
130126 strategy :
@@ -134,18 +130,15 @@ jobs:
134130 - LEAFCLOUD
135131 - SMS
136132 - ARCUS
137- os_version :
138- - RL8
139- - RL9
140- image :
141- - rocky-latest
133+ build :
134+ - image_name : rocky-latest-RL8
135+ - image_name : rocky-latest-RL9
142136 exclude :
143137 - target_cloud : LEAFCLOUD
144138 env :
145139 OS_CLOUD : openstack
146140 SOURCE_CLOUD : ${{ github.event.inputs.ci_cloud || vars.CI_CLOUD }}
147141 TARGET_CLOUD : ${{ matrix.target_cloud }}
148- IMAGE_NAME : " ${{ matrix.image }}-${{ matrix.os_version }}"
149142 steps :
150143 - uses : actions/checkout@v2
151144
@@ -160,42 +153,37 @@ jobs:
160153 . venv/bin/activate
161154 pip install -U pip
162155 pip install $(grep -o 'python-openstackclient[><=0-9\.]*' requirements.txt)
163- shell : bash
164156
165157 - name : Write clouds.yaml
166158 run : |
167159 mkdir -p ~/.config/openstack/
168160 echo "${{ secrets[format('{0}_CLOUDS_YAML', env.SOURCE_CLOUD)] }}" > ~/.config/openstack/source_clouds.yaml
169161 echo "${{ secrets[format('{0}_CLOUDS_YAML', env.TARGET_CLOUD)] }}" > ~/.config/openstack/target_clouds.yaml
170- shell : bash
171162
172163 - name : Download source image
173164 run : |
174165 . venv/bin/activate
175166 export OS_CLIENT_CONFIG_FILE=~/.config/openstack/source_clouds.yaml
176- openstack image save --file ${{ env.IMAGE_NAME }} ${{ env.IMAGE_NAME }}
177- shell : bash
167+ openstack image save --file ${{ matrix.build.image_name }} ${{ matrix.build.image_name }}
178168
179169 - name : Upload to target cloud
180170 run : |
181171 . venv/bin/activate
182172 export OS_CLIENT_CONFIG_FILE=~/.config/openstack/target_clouds.yaml
183173
184- openstack image create "${{ env.IMAGE_NAME }}" \
185- --file "${{ env.IMAGE_NAME }}" \
174+ openstack image create "${{ matrix.build.image_name }}" \
175+ --file "${{ matrix.build.image_name }}" \
186176 --disk-format qcow2 \
187- shell : bash
188177
189178 - name : Delete old latest image from target cloud
190179 run : |
191180 . venv/bin/activate
192181 export OS_CLIENT_CONFIG_FILE=~/.config/openstack/target_clouds.yaml
193182
194- IMAGE_COUNT=$(openstack image list --name ${{ env.IMAGE_NAME }} -f value -c ID | wc -l)
183+ IMAGE_COUNT=$(openstack image list --name ${{ matrix.build.image_name }} -f value -c ID | wc -l)
195184 if [ "$IMAGE_COUNT" -gt 1 ]; then
196- OLD_IMAGE_ID=$(openstack image list --sort created_at:asc --name "${{ env.IMAGE_NAME }}" -f value -c ID | head -n 1)
185+ OLD_IMAGE_ID=$(openstack image list --sort created_at:asc --name "${{ matrix.build.image_name }}" -f value -c ID | head -n 1)
197186 openstack image delete "$OLD_IMAGE_ID"
198187 else
199188 echo "Only one image exists, skipping deletion."
200189 fi
201- shell : bash
0 commit comments