@@ -121,3 +121,72 @@ jobs:
121121 uses : re-actors/alls-green@release/v1
122122 with :
123123 jobs : ${{ toJSON(needs) }}
124+
125+ iop-tests :
126+ strategy :
127+ fail-fast : false
128+ matrix :
129+ certificate_source :
130+ - default
131+ - installer
132+ runs-on : ubuntu-24.04
133+ steps :
134+ - uses : actions/checkout@v5
135+ - name : Set up Python
136+ uses : actions/setup-python@v6
137+ with :
138+ python-version : ' 3.12'
139+ - name : Setup libvirt for Vagrant
140+ uses : voxpupuli/setup-vagrant@v0
141+ - name : Install Ansible
142+ run : pip install --upgrade ansible-core
143+ - name : Setup environment
144+ run : ./setup-environment
145+ - name : Start VMs
146+ run : |
147+ ./forge vms start
148+ - name : Configure repositories
149+ run : |
150+ ./forge setup-repositories
151+ - name : Create installer certificates
152+ if : contains(matrix.certificate_source, 'installer')
153+ run : |
154+ ./forge installer-certs
155+ - name : Run image pull
156+ run : |
157+ ./foremanctl pull-images
158+ - name : Run deployment
159+ run : |
160+ ./foremanctl deploy --enable-iop true --certificate-source=${{ matrix.certificate_source }} --foreman-initial-admin-password=changeme
161+ - name : Setup hammer
162+ run : |
163+ ./foremanctl setup-hammer
164+ - name : Run tests
165+ run : |
166+ ./forge test --pytest-args="--certificate-source=${{ matrix.certificate_source }}"
167+ - name : Run smoker
168+ run : |
169+ ./forge smoker
170+ - name : Archive smoker report
171+ if : ${{ always() }}
172+ uses : actions/upload-artifact@v5
173+ with :
174+ name : smoker-iop-${{ matrix.certificate_source }}
175+ path : " /home/runner/smoker/report/"
176+ - name : Generate sos reports
177+ if : ${{ always() }}
178+ run : ./forge sos
179+ - name : Archive sos reports
180+ if : ${{ always() }}
181+ uses : actions/upload-artifact@v5
182+ with :
183+ name : sosreport-iop-${{ matrix.certificate_source }}
184+ path : sos/
185+ - name : Setup upterm session
186+ if : ${{ failure() }}
187+ uses : owenthereal/action-upterm@v1
188+ with :
189+ # # limits ssh access and adds the ssh public key for the user which triggered the workflow
190+ limit-access-to-actor : true
191+ # # If no one connects after 5 minutes, shut down server.
192+ wait-timeout-minutes : 5
0 commit comments