IPA build workflow #4225
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
concurrency: | |
group: stackhpc-pull-request-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
name: Pull request | |
'on': | |
pull_request: | |
jobs: | |
# Detect which files have changed and use this to run jobs conditionally. | |
# Note that we can't use the workflow-level paths attribute since this | |
# would skip the workflow entirely, and would prevent us from making the | |
# aio jobs required to pass (a skip counts as a pass). | |
check-changes: | |
runs-on: ubuntu-22.04 | |
permissions: | |
pull-requests: read | |
name: Check changed files | |
if: github.repository == 'stackhpc/stackhpc-kayobe-config' | |
outputs: | |
aio: ${{ steps.changes.outputs.aio }} | |
build-kayobe-image: ${{ steps.changes.outputs.build-kayobe-image }} | |
check-tags: ${{ steps.changes.outputs.check-tags }} | |
steps: | |
- name: GitHub Checkout | |
uses: actions/checkout@v4 | |
- name: Check changed files | |
uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
# Filters are defined in this file. | |
filters: .github/path-filters.yml | |
tox: | |
runs-on: ubuntu-22.04 | |
permissions: {} | |
strategy: | |
matrix: | |
include: | |
- environment: pep8 | |
python-version: "3.10" | |
- environment: releasenotes | |
python-version: "3.10" | |
- environment: docs | |
python-version: "3.10" | |
name: Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }} | |
if: github.repository == 'stackhpc/stackhpc-kayobe-config' | |
steps: | |
- name: GitHub Checkout 🛎 | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Python ${{ matrix.python-version }} 🐍 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Tox 📦 | |
run: pip install tox | |
- name: Run Tox ${{ matrix.environment }} 🧪 | |
run: tox -e ${{ matrix.environment }} | |
# A skipped job is treated as success when used as a required status check. | |
# The registered required status checks refer to the name of the job in the | |
# called reusable workflow rather than the jobs in this file. The following | |
# jobs need to run unconditionally to allow GitHub required status checks to | |
# pass even when there are changed files. The `! failure()` condition runs | |
# when the parent jobs completed successfully or were skipped. We pass an | |
# 'if' argument to the called workflow to allow running it conditionally. | |
build-kayobe-image: | |
name: Build Kayobe Image | |
needs: | |
- check-changes | |
uses: ./.github/workflows/stackhpc-build-kayobe-image.yml | |
with: | |
if: ${{ needs.check-changes.outputs.build-kayobe-image == 'true' }} | |
if: github.repository == 'stackhpc/stackhpc-kayobe-config' | |
check-tags: | |
name: Check container image tags | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-check-tags.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
if: ${{ needs.check-changes.outputs.check-tags == 'true' }} | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} | |
all-in-one-ubuntu-jammy-ovs: | |
name: aio (Ubuntu Jammy OVS) | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: ubuntu | |
os_release: jammy | |
ssh_username: ubuntu | |
neutron_plugin: ovs | |
OS_CLOUD: openstack | |
if: ${{ needs.check-changes.outputs.aio == 'true' }} | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} | |
all-in-one-ubuntu-jammy-ovn: | |
name: aio (Ubuntu Jammy OVN) | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: ubuntu | |
os_release: jammy | |
ssh_username: ubuntu | |
neutron_plugin: ovn | |
OS_CLOUD: openstack | |
if: ${{ needs.check-changes.outputs.aio == 'true' }} | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} | |
all-in-one-rocky-9-ovs: | |
name: aio (Rocky 9 OVS) | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: rocky | |
os_release: "9" | |
ssh_username: cloud-user | |
neutron_plugin: ovs | |
OS_CLOUD: openstack | |
if: ${{ needs.check-changes.outputs.aio == 'true' }} | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} | |
all-in-one-rocky-9-ovn: | |
name: aio (Rocky 9 OVN) | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: rocky | |
os_release: "9" | |
ssh_username: cloud-user | |
neutron_plugin: ovn | |
OS_CLOUD: openstack | |
if: ${{ needs.check-changes.outputs.aio == 'true' }} | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} | |
# Test two upgrade scenarios: Ubuntu Jammy OVS and Rocky 9 OVN. | |
all-in-one-upgrade-ubuntu-jammy-ovs: | |
name: aio upgrade (Ubuntu Jammy OVS) | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: ubuntu | |
os_release: jammy | |
ssh_username: ubuntu | |
neutron_plugin: ovs | |
OS_CLOUD: openstack | |
if: ${{ needs.check-changes.outputs.aio == 'true' }} | |
upgrade: true | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} | |
all-in-one-upgrade-rocky-9-ovn: | |
name: aio upgrade (Rocky 9 OVN) | |
needs: | |
- check-changes | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: rocky | |
os_release: "9" | |
ssh_username: cloud-user | |
neutron_plugin: ovn | |
OS_CLOUD: openstack | |
if: ${{ needs.check-changes.outputs.aio == 'true' }} | |
upgrade: true | |
secrets: inherit | |
if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }} |