@@ -6,113 +6,14 @@ concurrency:
66
77name : Pull request
88' on ' :
9- pull_request :
9+ push :
1010jobs :
1111 # Detect which files have changed and use this to run jobs conditionally.
1212 # Note that we can't use the workflow-level paths attribute since this
1313 # would skip the workflow entirely, and would prevent us from making the
1414 # aio jobs required to pass (a skip counts as a pass).
15- check-changes :
16- runs-on : ubuntu-24.04
17- permissions :
18- pull-requests : read
19- name : Check changed files
20- if : github.repository == 'stackhpc/stackhpc-kayobe-config'
21- needs :
22- - lint
23- # - tox
24- outputs :
25- aio : ${{ steps.changes.outputs.aio }}
26- build-kayobe-image : ${{ steps.changes.outputs.build-kayobe-image }}
27- check-tags : ${{ steps.changes.outputs.check-tags }}
28- steps :
29- - name : GitHub Checkout
30- uses : actions/checkout@v4
31-
32- - name : Check changed files
33- uses : dorny/paths-filter@v3
34- id : changes
35- with :
36- # Filters are defined in this file.
37- filters : .github/path-filters.yml
38-
39- tox :
40- runs-on : ubuntu-24.04
41- permissions : {}
42- strategy :
43- matrix :
44- include :
45- - environment : pep8
46- python-version : " 3.12"
47- - environment : releasenotes
48- python-version : " 3.12"
49- - environment : docs
50- python-version : " 3.12"
51- name : Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }}
52- if : github.repository == 'stackhpc/stackhpc-kayobe-config'
53- steps :
54- - name : GitHub Checkout 🛎
55- uses : actions/checkout@v4
56- with :
57- fetch-depth : 0
58- - name : Setup Python ${{ matrix.python-version }} 🐍
59- uses : actions/setup-python@v5
60- with :
61- python-version : ${{ matrix.python-version }}
62- - name : Install Tox 📦
63- run : pip install tox
64- - name : Run Tox ${{ matrix.environment }} 🧪
65- run : tox -e ${{ matrix.environment }}
66-
67- lint :
68- runs-on : ubuntu-24.04
69- permissions : {}
70- strategy :
71- fail-fast : false
72- matrix :
73- include :
74- # NOTE(upgrade): Keep these in sync with Kayobe's supported Ansible and Python versions (see release notes).
75- - ansible : " 2.18"
76- python : " 3.12"
77- - ansible : " 2.17"
78- python : " 3.10"
79- name : Ansible ${{ matrix.ansible }} lint with Python ${{ matrix.python }}
80- if : github.repository == 'stackhpc/stackhpc-kayobe-config'
81- steps :
82- - name : GitHub Checkout 🛎
83- uses : actions/checkout@v4
84-
85- - name : Setup Python ${{ matrix.python-version }} 🐍
86- uses : actions/setup-python@v4
87- with :
88- python-version : ${{ matrix.python }}
89-
90- - name : Install dependencies 📦
91- run : |
92- python -m pip install --upgrade pip
93- pip install ansible-core==${{ matrix.ansible }}.* ansible-lint -r requirements.txt
94-
95- - name : Install Ansible Galaxy collections and roles
96- run : |
97- ansible-galaxy collection install -r etc/kayobe/ansible/requirements.yml
98- ansible-galaxy role install -r etc/kayobe/ansible/requirements.yml
99-
100- - name : Linting code 🧪
101- run : |
102- ansible-lint -v --force-color etc/kayobe/ansible/.
103-
104- # A skipped job is treated as success when used as a required status check.
105- # The registered required status checks refer to the name of the job in the
106- # called reusable workflow rather than the jobs in this file. The following
107- # jobs need to run unconditionally to allow GitHub required status checks to
108- # pass even when there are changed files. The `! failure()` condition runs
109- # when the parent jobs completed successfully or were skipped. We pass an
110- # 'if' argument to the called workflow to allow running it conditionally.
111-
11215 build-kayobe-image :
11316 name : Build Kayobe Image
114- needs :
115- - check-changes
11617 uses : ./.github/workflows/stackhpc-build-kayobe-image.yml
11718 with :
11819 if : ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }}
12122 check-tags :
12223 name : Check container image tags
12324 needs :
124- - check-changes
12525 - build-kayobe-image
12626 uses : ./.github/workflows/stackhpc-check-tags.yml
12727 with :
@@ -130,81 +30,9 @@ jobs:
13030 secrets : inherit
13131 if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
13232
133- all-in-one-ubuntu-noble-ovn :
134- name : aio (Ubuntu Noble OVN)
135- needs :
136- - check-changes
137- - build-kayobe-image
138- uses : ./.github/workflows/stackhpc-all-in-one.yml
139- with :
140- kayobe_image : ${{ needs.build-kayobe-image.outputs.kayobe_image }}
141- os_distribution : ubuntu
142- os_release : noble
143- ssh_username : ubuntu
144- neutron_plugin : ovn
145- OS_CLOUD : openstack
146- if : ${{ needs.check-changes.outputs.aio == 'true' }}
147- secrets : inherit
148- if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
149-
150- all-in-one-rocky-9-ovs :
151- name : aio (Rocky 9 OVS)
152- needs :
153- - check-changes
154- - build-kayobe-image
155- uses : ./.github/workflows/stackhpc-all-in-one.yml
156- with :
157- kayobe_image : ${{ needs.build-kayobe-image.outputs.kayobe_image }}
158- os_distribution : rocky
159- os_release : " 9"
160- ssh_username : cloud-user
161- neutron_plugin : ovs
162- OS_CLOUD : openstack
163- if : ${{ needs.check-changes.outputs.aio == 'true' }}
164- secrets : inherit
165- if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
166-
167- all-in-one-rocky-9-ovn :
168- name : aio (Rocky 9 OVN)
169- needs :
170- - check-changes
171- - build-kayobe-image
172- uses : ./.github/workflows/stackhpc-all-in-one.yml
173- with :
174- kayobe_image : ${{ needs.build-kayobe-image.outputs.kayobe_image }}
175- os_distribution : rocky
176- os_release : " 9"
177- ssh_username : cloud-user
178- neutron_plugin : ovn
179- OS_CLOUD : openstack
180- if : ${{ needs.check-changes.outputs.aio == 'true' }}
181- secrets : inherit
182- if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
183-
184- # Test two upgrade scenarios: Ubuntu Jammy to Noble OVN and Rocky 9 OVN.
185-
186- all-in-one-upgrade-ubuntu-jammy-to-noble-ovn :
187- name : aio upgrade (Ubuntu Jammy to Noble OVN)
188- needs :
189- - check-changes
190- - build-kayobe-image
191- uses : ./.github/workflows/stackhpc-all-in-one.yml
192- with :
193- kayobe_image : ${{ needs.build-kayobe-image.outputs.kayobe_image }}
194- os_distribution : ubuntu
195- os_release : jammy
196- ssh_username : ubuntu
197- neutron_plugin : ovn
198- OS_CLOUD : openstack
199- if : ${{ needs.check-changes.outputs.aio == 'true' }}
200- upgrade : true
201- secrets : inherit
202- if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
203-
20433 all-in-one-upgrade-rocky-9-ovn :
20534 name : aio upgrade (Rocky 9 OVN)
20635 needs :
207- - check-changes
20836 - build-kayobe-image
20937 uses : ./.github/workflows/stackhpc-all-in-one.yml
21038 with :
@@ -214,15 +42,13 @@ jobs:
21442 ssh_username : cloud-user
21543 neutron_plugin : ovn
21644 OS_CLOUD : openstack
217- if : ${{ needs.check-changes.outputs.aio == 'true' }}
21845 upgrade : true
21946 secrets : inherit
22047 if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
22148
22249 all-in-one-upgrade-rocky-9-ovs :
22350 name : aio upgrade (Rocky 9 OVS)
22451 needs :
225- - check-changes
22652 - build-kayobe-image
22753 uses : ./.github/workflows/stackhpc-all-in-one.yml
22854 with :
23258 ssh_username : cloud-user
23359 neutron_plugin : ovs
23460 OS_CLOUD : openstack
235- if : ${{ needs.check-changes.outputs.aio == 'true' }}
23661 upgrade : true
23762 secrets : inherit
23863 if : ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}
0 commit comments