forked from rook/rook
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)
119 lines
4.3 KiB
YAML
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') }}
|