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-20.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.23.17", "v1.25.16", "v1.27.8", "v1.29.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: github-token: ${{ secrets.GITHUB_TOKEN }} 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=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1) 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-20.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.23.17", "v1.25.16", "v1.27.8", "v1.29.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: github-token: ${{ secrets.GITHUB_TOKEN }} kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephMultiClusterDeploySuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export TEST_SCRATCH_DEVICE=$(sudo lsblk --paths|awk '/14G/ || /64G/ {print $1}'| head -1)1 export DEVICE_FILTER=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1) 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-20.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.23.17", "v1.25.16", "v1.27.8", "v1.29.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: github-token: ${{ secrets.GITHUB_TOKEN }} kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephSmokeSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1) 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-20.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.23.17", "v1.25.16", "v1.27.8", "v1.29.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: github-token: ${{ secrets.GITHUB_TOKEN }} kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephUpgradeSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1) 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-20.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.23.17", "v1.26.11", "v1.29.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: github-token: ${{ secrets.GITHUB_TOKEN }} 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=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1) 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-20.04 strategy: fail-fast: false matrix: kubernetes-versions: ["v1.23.17", "v1.29.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: github-token: ${{ secrets.GITHUB_TOKEN }} kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephObjectSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background export DEVICE_FILTER=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1) 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/