CI: split PR workflows, add paths #1917
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-20.04 | |
permissions: | |
pull-requests: read | |
name: Check changed files | |
if: github.repository == 'stackhpc/stackhpc-kayobe-config' | |
outputs: | |
aio: ${{ steps.changes.outputs.aio }} | |
steps: | |
- name: GitHub Checkout | |
uses: actions/checkout@v3 | |
- name: Check changed files | |
uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
# Filters are defined in this file. | |
filters: .github/path-filters.yml | |
tox: | |
runs-on: ubuntu-20.04 | |
permissions: {} | |
strategy: | |
matrix: | |
include: | |
- environment: pep8 | |
python-version: 3.8 | |
- environment: releasenotes | |
python-version: 3.8 | |
name: Tox ${{ matrix.environment }} with Python ${{ matrix.python-version }} | |
if: github.repository == 'stackhpc/stackhpc-kayobe-config' | |
steps: | |
- name: GitHub Checkout 🛎 | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Setup Python ${{ matrix.python-version }} 🐍 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Tox 📦 | |
run: pip install tox | |
- name: Run Tox ${{ matrix.environment }} 🧪 | |
run: tox -e ${{ matrix.environment }} | |
build-kayobe-image: | |
name: Build Kayobe Image | |
needs: | |
- check-changes | |
uses: ./.github/workflows/stackhpc-build-kayobe-image.yml | |
if: needs.check-changes.outputs.aio == 'true' | |
all-in-one-centos-ovs: | |
name: aio (CentOS OVS) | |
needs: | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
neutron_plugin: ovs | |
OS_CLOUD: sms-lab-release | |
secrets: inherit | |
if: needs.check-changes.outputs.aio == 'true' | |
all-in-one-centos-ovn: | |
name: aio (CentOS OVN) | |
needs: | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
neutron_plugin: ovn | |
OS_CLOUD: sms-lab-release | |
secrets: inherit | |
if: needs.check-changes.outputs.aio == 'true' | |
all-in-one-rocky-ovs: | |
name: aio (Rocky OVS) | |
needs: | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: rocky | |
neutron_plugin: ovs | |
# NOTE: The current SMS lab Rocky8 image has moved ahead of our release | |
# train snapshots, causing failures installing some packages. | |
vm_image: Rocky8-2022-11-08 | |
vm_interface: ens3 | |
OS_CLOUD: sms-lab-release | |
secrets: inherit | |
if: needs.check-changes.outputs.aio == 'true' | |
all-in-one-rocky-ovn: | |
name: aio (Rocky OVN) | |
needs: | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: rocky | |
neutron_plugin: ovn | |
# NOTE: The current SMS lab Rocky8 image has moved ahead of our release | |
# train snapshots, causing failures installing some packages. | |
vm_image: Rocky8-2022-11-08 | |
vm_interface: ens3 | |
OS_CLOUD: sms-lab-release | |
secrets: inherit | |
if: needs.check-changes.outputs.aio == 'true' | |
all-in-one-ubuntu-ovs: | |
name: aio (Ubuntu OVS) | |
needs: | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: ubuntu | |
neutron_plugin: ovs | |
vm_image: Ubuntu-20.04 | |
OS_CLOUD: sms-lab-release | |
secrets: inherit | |
if: needs.check-changes.outputs.aio == 'true' | |
all-in-one-ubuntu-ovn: | |
name: aio (Ubuntu OVN) | |
needs: | |
- build-kayobe-image | |
uses: ./.github/workflows/stackhpc-all-in-one.yml | |
with: | |
kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} | |
os_distribution: ubuntu | |
neutron_plugin: ovn | |
vm_image: Ubuntu-20.04 | |
OS_CLOUD: sms-lab-release | |
secrets: inherit | |
if: needs.check-changes.outputs.aio == 'true' |