@@ -167,7 +167,7 @@ jobs:
167
167
VM_NETWORK : ${{ inputs.vm_network }}
168
168
VM_SUBNET : ${{ inputs.vm_subnet }}
169
169
VM_INTERFACE : ${{ inputs.vm_interface }}
170
- VM_VOLUME_SIZE : ${{ inputs.upgrade && '45 ' || '35 ' }}
170
+ VM_VOLUME_SIZE : ${{ inputs.upgrade && '55 ' || '40 ' }}
171
171
VM_TAGS : ' ["skc-ci-aio", "PR=${{ github.event.number }}"]'
172
172
173
173
- name : Terraform Plan
@@ -179,6 +179,7 @@ jobs:
179
179
OS_APPLICATION_CREDENTIAL_SECRET : ${{ secrets.OS_APPLICATION_CREDENTIAL_SECRET }}
180
180
181
181
- name : Terraform Apply
182
+ id : tf_apply
182
183
run : |
183
184
for attempt in $(seq 5); do
184
185
if terraform apply -auto-approve; then
@@ -355,28 +356,82 @@ jobs:
355
356
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
356
357
if : inputs.upgrade
357
358
359
+ - name : Ensure we have IP on breth1 to reach the instances
360
+ # NOTE(wszumski): Whilst we don't need to create resources again, in some circumstances
361
+ # we can lose the IP address that allows us to connect to the instances. This playbook
362
+ # also fixes that issue.
363
+ run : |
364
+ docker run -t --rm \
365
+ -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
366
+ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
367
+ ${{ steps.kayobe_image.outputs.kayobe_image }} \
368
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh etc/kayobe/ansible/configure-aio-resources.yml
369
+ env :
370
+ KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
371
+ if : inputs.upgrade
372
+
358
373
- name : Tempest tests
374
+ id : tempest
359
375
run : |
360
376
mkdir -p tempest-artifacts
361
377
docker run -t --rm \
362
378
-v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
363
379
-v $(pwd)/tempest-artifacts:/stack/tempest-artifacts \
364
380
-e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
365
381
$KAYOBE_IMAGE \
366
- /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/tempest.sh -e ansible_user=stack -e rally_no_sensitive_log=false
382
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/tempest.sh -e ansible_user=stack
383
+ env :
384
+ KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
385
+
386
+ - name : StackHPC OpenStack tests
387
+ id : stackhpc-openstack-tests
388
+ continue-on-error : true
389
+ run : |
390
+ mkdir -p sot-results
391
+ docker run -t --rm \
392
+ -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
393
+ -v $(pwd)/sot-results:/stack/sot-results \
394
+ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
395
+ $KAYOBE_IMAGE \
396
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/stackhpc-openstack-tests.yml'
397
+ env :
398
+ KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
399
+
400
+ - name : Collect diagnostic information
401
+ id : diagnostics
402
+ run : |
403
+ mkdir -p diagnostics
404
+ sudo -E docker run -t --rm \
405
+ -v $(pwd):/stack/kayobe-automation-env/src/kayobe-config \
406
+ -v $(pwd)/diagnostics:/stack/diagnostics \
407
+ -e KAYOBE_ENVIRONMENT -e KAYOBE_VAULT_PASSWORD -e KAYOBE_AUTOMATION_SSH_PRIVATE_KEY \
408
+ $KAYOBE_IMAGE \
409
+ /stack/kayobe-automation-env/src/kayobe-config/.automation/pipeline/playbook-run.sh '$KAYOBE_CONFIG_PATH/ansible/diagnostics.yml'
367
410
env :
368
411
KAYOBE_AUTOMATION_SSH_PRIVATE_KEY : ${{ steps.ssh_key.outputs.ssh_key }}
412
+ if : ${{ !cancelled() && steps.tf_apply.outcome == 'success' }}
369
413
370
414
- name : Upload test result artifacts
371
415
uses : actions/upload-artifact@v4
372
416
with :
373
- name : tempest-results-${{ inputs.os_distribution }}-${{ inputs.os_release }}-${{ inputs.neutron_plugin }}${{ inputs.upgrade && '-upgrade' }}
374
- path : tempest-artifacts/*
417
+ name : test-results-${{ inputs.os_distribution }}-${{ inputs.os_release }}-${{ inputs.neutron_plugin }}${{ inputs.upgrade && '-upgrade' || '' }}
418
+ path : |
419
+ diagnostics/
420
+ tempest-artifacts/
421
+ sot-results/
422
+ if : ${{ !cancelled() && (steps.tempest.outcome == 'success' || steps.stackhpc-openstack-tests.outcome == 'success' || steps.diagnostics.outcome == 'success') }}
375
423
376
424
- name : Fail if any Tempest tests failed
377
425
run : |
378
426
test $(wc -l < tempest-artifacts/failed-tests) -lt 1
379
427
428
+ - name : Fail if any StackHPC OpenStack tests failed
429
+ run : |
430
+ echo "Some StackHPC OpenStack tests failed."
431
+ echo "See HTML results artifact (sot-results) for details."
432
+ exit 1
433
+ if : steps.stackhpc-openstack-tests.outcome == 'failure'
434
+
380
435
- name : Destroy
381
436
run : terraform destroy -auto-approve
382
437
working-directory : ${{ github.workspace }}/terraform/aio
0 commit comments