Files
my-rook-config/.github/workflows/multus.yaml
T
Travis Nielsen d6580d5a94 ci: update github actions to go 1.26
Use the latest version of Go in the github actions.
Support for both Go 1.25 and 1.26 is still available,
this only affects the version used by the CI.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
(cherry picked from commit 033f6f732e)
2026-05-18 04:32:00 +00:00

119 lines
4.3 KiB
YAML

name: Multus integration tests
on:
push:
tags:
- v*
branches:
- master
- release-*
pull_request:
paths:
- cmd/rook/userfacing/**
- pkg/daemon/multus/**
- .github/workflows/multus.yaml
- tests/scripts/multus/**
defaults:
run:
# reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
shell: bash --noprofile --norc -eo pipefail -x {0}
# cancel the in-progress workflow when PR is refreshed.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test-validation-tool:
runs-on: ubuntu-latest
strategy:
fail-fast: true
if: "!contains(github.event.pull_request.labels.*.name, 'skip-ci')"
env:
NUMBER_OF_COMPUTE_NODES: 5
steps:
- name: checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Set up Go version
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "1.26"
- name: Create KinD Cluster
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
config: tests/scripts/multus/kind-config.yaml
cluster_name: kind
- name: consider (pre-job) debugging
uses: ./.github/workflows/tmate_debug
with:
use-tmate: ${{ secrets.USE_TMATE }}
debug-ci: ${{ contains(github.event.pull_request.labels.*.name, 'debug-ci') }}
- name: Setup multus
run: ./tests/scripts/multus/setup-multus.sh
- name: Set up multus prerequisite host routing
run: kubectl create -f tests/scripts/multus/host-cfg-ds.yaml
- name: Install public and cluster NADs in default namespace
run: kubectl create -f tests/scripts/multus/default-public-cluster-nads.yaml
- name: Quickly build Rook binary
id: build
run: go build -tags=ceph_preview -o rook cmd/rook/*.go
- name: Run CLI validation test
run: ./tests/scripts/multus/test-110-cli.sh
- name: Label kind nodes for stretch cluster tests
id: label
# tests that require labels are independent from previous tests
if: steps.build.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-200-stretch-label-nodes.sh
# nodes are purposefully not tainted yet for overlap test
- name: Run stretch cluster overlap test
id: overlap
# independent from other tests as long as nodes are labeled
if: steps.label.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-210-stretch-overlap.sh
- name: Run cleanup test
# cleanup relies on overlap test to be successful
if: steps.overlap.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-211-stretch-cleanup.sh
- name: Taint kind nodes for remaining stretch cluster tests
id: taint
# tests that require taints+labels are independent from previous tests
if: steps.label.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-200-stretch-taint-nodes.sh
- name: Run stretch cluster test with public and cluster networks
# independent from other tests as long as nodes are tainted and labeled
if: steps.taint.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-220-stretch-pub-and-cluster.sh
- name: Run stretch cluster test with public network only
# independent from other tests as long as nodes are tainted and labeled
if: steps.taint.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-230-stretch-pub-only.sh
- name: Run stretch cluster test with cluster network only
# independent from other tests as long as nodes are tainted and labeled
if: steps.taint.outcome == 'success' && !cancelled()
run: ./tests/scripts/multus/test-240-stretch-cluster-only.sh
- name: consider (post-job) debugging
uses: ./.github/workflows/upterm_debug
with:
debug-ci: ${{ contains(github.event.pull_request.labels.*.name, 'debug-ci') }}