name: Integration tests on master/release on: push: tags: - v* branches: - master - release-* 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} jobs: TestCephHelmSuite: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.25.16", "v1.27.13", "v1.28.9", "v1.30.0"] steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup cluster resources uses: ./.github/workflows/integration-test-config-latest-k8s with: kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephHelmSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background tests/scripts/github-action-helper.sh create_helm_tag tests/scripts/helm.sh up export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev) SKIP_TEST_CLEANUP=false SKIP_CLEANUP_POLICY=false go test -v -timeout 1800s -run CephHelmSuite github.com/rook/rook/tests/integration - name: collect common logs if: always() run: | export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/" export CLUSTER_NAMESPACE="helm-ns" export OPERATOR_NAMESPACE="helm-ns-system" tests/scripts/collect-logs.sh - name: Artifact uses: actions/upload-artifact@v4 if: failure() with: name: ceph-helm-suite-artifact-${{ matrix.kubernetes-versions }} path: /home/runner/work/rook/rook/tests/integration/_output/tests/ TestCephMultiClusterDeploySuite: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.25.16", "v1.27.13", "v1.28.9", "v1.30.0"] steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup latest cluster resources uses: ./.github/workflows/integration-test-config-latest-k8s with: kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephMultiClusterDeploySuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background DEVICE_NAME="$(tests/scripts/github-action-helper.sh find_extra_block_dev)" export BLOCK="$/dev/${DEVICE_NAME}" export TEST_SCRATCH_DEVICE="/dev/${DEVICE_NAME}1" export DEVICE_FILTER="$DEVICE_NAME" go test -v -timeout 1800s -run CephMultiClusterDeploySuite github.com/rook/rook/tests/integration - name: collect common logs if: always() run: | export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/" export OPERATOR_NAMESPACE="multi-core-system" CLUSTER_NAMESPACE="multi-core" tests/scripts/collect-logs.sh CLUSTER_NAMESPACE="multi-external" tests/scripts/collect-logs.sh - name: Artifact uses: actions/upload-artifact@v4 if: failure() with: name: ceph-multi-cluster-deploy-suite-artifact-${{ matrix.kubernetes-versions }} path: /home/runner/work/rook/rook/tests/integration/_output/tests/ TestCephSmokeSuite: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.25.16", "v1.27.13", "v1.28.9", "v1.30.0"] steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup latest cluster resources uses: ./.github/workflows/integration-test-config-latest-k8s with: kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephSmokeSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev) SKIP_CLEANUP_POLICY=false go test -v -timeout 1800s -run CephSmokeSuite github.com/rook/rook/tests/integration - name: collect common logs if: always() run: | export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/" export CLUSTER_NAMESPACE="smoke-ns" export OPERATOR_NAMESPACE="smoke-ns-system" tests/scripts/collect-logs.sh - name: Artifact uses: actions/upload-artifact@v4 if: failure() with: name: ceph-smoke-suite-artifact-${{ matrix.kubernetes-versions }} path: /home/runner/work/rook/rook/tests/integration/_output/tests/ TestCephUpgradeSuite: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.25.16", "v1.27.13", "v1.28.9", "v1.30.0"] steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup latest cluster resources uses: ./.github/workflows/integration-test-config-latest-k8s with: kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephUpgradeSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev) go test -v -timeout 2400s -run CephUpgradeSuite/TestUpgradeRook github.com/rook/rook/tests/integration - name: collect common logs if: always() run: | export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/" export CLUSTER_NAMESPACE="upgrade" export OPERATOR_NAMESPACE="upgrade-system" tests/scripts/collect-logs.sh - name: Artifact uses: actions/upload-artifact@v4 if: failure() with: name: ceph-upgrade-suite-artifact-${{ matrix.kubernetes-versions }} path: /home/runner/work/rook/rook/tests/integration/_output/tests/ TestHelmUpgradeSuite: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.25.16", "v1.27.13", "v1.28.9", "v1.30.0"] steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup cluster resources uses: ./.github/workflows/integration-test-config-latest-k8s with: kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestHelmUpgradeSuite run: | tests/scripts/github-action-helper.sh create_helm_tag tests/scripts/helm.sh up tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev) go test -v -timeout 1800s -run CephUpgradeSuite/TestUpgradeHelm github.com/rook/rook/tests/integration - name: collect common logs if: always() run: | export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/" export CLUSTER_NAMESPACE="upgrade" export OPERATOR_NAMESPACE="upgrade-system" tests/scripts/collect-logs.sh - name: Artifact uses: actions/upload-artifact@v4 if: failure() with: name: ceph-upgrade-suite-artifact-${{ matrix.kubernetes-versions }} path: /home/runner/work/rook/rook/tests/integration/_output/tests/ TestCephObjectSuite: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.25.16", "v1.30.0"] steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: setup latest cluster resources uses: ./.github/workflows/integration-test-config-latest-k8s with: kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephObjectSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev) SKIP_CLEANUP_POLICY=false go test -v -timeout 2400s -failfast -run CephObjectSuite github.com/rook/rook/tests/integration - name: collect common logs if: always() run: | export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/" export CLUSTER_NAMESPACE="object-ns" export OPERATOR_NAMESPACE="object-ns-system" tests/scripts/collect-logs.sh - name: Artifact uses: actions/upload-artifact@v4 if: failure() with: name: ceph-object-suite-artifact-${{ matrix.kubernetes-versions }} path: /home/runner/work/rook/rook/tests/integration/_output/tests/