Skip to content

DNM - Zuul CI test #5664

DNM - Zuul CI test

DNM - Zuul CI test #5664

# ---
# 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-24.04
# permissions:
# pull-requests: read
# name: Check changed files
# if: github.repository == 'stackhpc/stackhpc-kayobe-config'
# needs:
# - lint
# # - tox
# 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-24.04
# permissions: {}
# strategy:
# matrix:
# include:
# - environment: pep8
# python-version: "3.12"
# - environment: releasenotes
# python-version: "3.12"
# - environment: docs
# python-version: "3.12"
# 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 }}
# lint:
# runs-on: ubuntu-24.04
# permissions: {}
# strategy:
# fail-fast: false
# matrix:
# include:
# # NOTE(upgrade): Keep these in sync with Kayobe's supported Ansible and Python versions (see release notes).
# - ansible: "2.18"
# python: "3.12"
# - ansible: "2.17"
# python: "3.10"
# name: Ansible ${{ matrix.ansible }} lint with Python ${{ matrix.python }}
# if: github.repository == 'stackhpc/stackhpc-kayobe-config'
# steps:
# - name: GitHub Checkout πŸ›Ž
# uses: actions/checkout@v4
# - name: Setup Python ${{ matrix.python-version }} 🐍
# uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python }}
# - name: Install dependencies πŸ“¦
# run: |
# python -m pip install --upgrade pip
# pip install ansible-core==${{ matrix.ansible }}.* ansible-lint -r requirements.txt
# - name: Install Ansible Galaxy collections and roles
# run: |
# ansible-galaxy collection install -r etc/kayobe/ansible/requirements.yml
# ansible-galaxy role install -r etc/kayobe/ansible/requirements.yml
# - name: Linting code πŸ§ͺ
# run: |
# ansible-lint -v --force-color etc/kayobe/ansible/.
# # 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-noble-ovn:
# name: aio (Ubuntu Noble 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: noble
# 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 to Noble OVN and Rocky 9 OVN.
# all-in-one-upgrade-ubuntu-jammy-to-noble-ovn:
# name: aio upgrade (Ubuntu Jammy to Noble 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' }}
# 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' }}
# all-in-one-upgrade-rocky-9-ovs:
# name: aio upgrade (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' }}
# upgrade: true
# secrets: inherit
# if: ${{ ! failure() && ! cancelled() && github.repository == 'stackhpc/stackhpc-kayobe-config' }}