From 99358688d8db0c1fa09b49db74f61f8f887cbc97 Mon Sep 17 00:00:00 2001 From: subhamkrai Date: Tue, 2 Nov 2021 11:13:37 +0530 Subject: [PATCH] ci: use github composition to reduce duplication Using Github Compositoin to reduce the yaml duplication. https://github.blog/changelog/2021-08-25-github-actions-reduce-duplication-with-action-composition/ Closes: https://github.com/rook/rook/issues/8637 Signed-off-by: subhamkrai --- .github/workflows/canary-integration-test.yml | 369 +++--------------- .github/workflows/collect-logs/action.yaml | 21 + .github/workflows/daily-nightly-jobs.yml | 149 ++----- .../integration-test-helm-suite.yaml | 24 +- .../workflows/integration-test-mgr-suite.yaml | 24 +- .../integration-test-multi-cluster-suite.yaml | 24 +- .../integration-test-object-suite.yaml | 24 +- .../integration-test-setup/action.yaml | 37 ++ .../integration-test-smoke-suite.yaml | 25 +- .../integration-test-upgrade-suite.yaml | 24 +- .../integration-tests-on-release.yaml | 123 +----- .../setup-cluster-resources/action.yaml | 34 ++ 12 files changed, 215 insertions(+), 663 deletions(-) create mode 100644 .github/workflows/collect-logs/action.yaml create mode 100644 .github/workflows/integration-test-setup/action.yaml create mode 100644 .github/workflows/setup-cluster-resources/action.yaml diff --git a/.github/workflows/canary-integration-test.yml b/.github/workflows/canary-integration-test.yml index c85657661..b3a9929fe 100644 --- a/.github/workflows/canary-integration-test.yml +++ b/.github/workflows/canary-integration-test.yml @@ -26,33 +26,19 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 + github-token: ${{ secrets.GITHUB_TOKEN }} - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status + - name: validate-yaml + run: tests/scripts/github-action-helper.sh validate_yaml - name: use local disk and create partitions for osds run: | tests/scripts/github-action-helper.sh use_local_disk tests/scripts/github-action-helper.sh create_partitions_for_osds - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - - name: validate-yaml - run: tests/scripts/github-action-helper.sh validate_yaml - - name: deploy cluster run: tests/scripts/github-action-helper.sh deploy_cluster @@ -85,15 +71,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload canary test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: name: canary - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -109,33 +89,16 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk and create partitions for osds run: | tests/scripts/github-action-helper.sh use_local_disk tests/scripts/github-action-helper.sh create_partitions_for_osds - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: | BLOCK=$(sudo lsblk --paths|awk '/14G/ {print $1}'| head -1) @@ -162,15 +125,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload pvc test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: - name: pvc - path: test + name: pvc - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -186,21 +143,10 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk run: tests/scripts/github-action-helper.sh use_local_disk @@ -208,13 +154,6 @@ jobs: - name: create bluestore partitions and PVCs run: tests/scripts/github-action-helper.sh create_bluestore_partitions_and_pvcs - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: tests/scripts/github-action-helper.sh create_cluster_prerequisites @@ -232,17 +171,11 @@ jobs: - name: wait for ceph to be ready run: tests/scripts/github-action-helper.sh wait_for_ceph_to_be_ready osd 1 - - name: collect common - if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload pvc-db test result - uses: actions/upload-artifact@v2 + - name: collect common logs if: always() + uses: ./.github/workflows/collect-logs with: name: pvc-db - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -258,23 +191,10 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: | - tests/scripts/github-action-helper.sh install_deps - sudo apt-get install -y gdisk - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk run: tests/scripts/github-action-helper.sh use_local_disk @@ -282,12 +202,6 @@ jobs: - name: create bluestore partitions and PVCs for wal run: tests/scripts/github-action-helper.sh create_bluestore_partitions_and_pvcs_for_wal - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: tests/scripts/github-action-helper.sh create_cluster_prerequisites @@ -310,15 +224,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload pvc-db-wal test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: name: pvc-db-wal - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -334,33 +242,16 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk and create partitions for osds run: | tests/scripts/github-action-helper.sh use_local_disk tests/scripts/github-action-helper.sh create_partitions_for_osds - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: | tests/scripts/localPathPV.sh $(lsblk --paths|awk '/14G/ {print $1}'| head -1) @@ -385,15 +276,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload encryption-pvc test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: name: encryption-pvc - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -409,23 +294,10 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: | - tests/scripts/github-action-helper.sh install_deps - sudo apt-get install -y gdisk - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk run: tests/scripts/github-action-helper.sh use_local_disk @@ -433,12 +305,6 @@ jobs: - name: create bluestore partitions and PVCs run: tests/scripts/github-action-helper.sh create_bluestore_partitions_and_pvcs - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: tests/scripts/github-action-helper.sh create_cluster_prerequisites @@ -460,15 +326,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload encryption-pvc-db-wal test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: - name: encryption-pvc-db-wal - path: test + name: encryption-pvc-db - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -484,23 +344,10 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: | - tests/scripts/github-action-helper.sh install_deps - sudo apt-get install -y gdisk - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk run: tests/scripts/github-action-helper.sh use_local_disk @@ -508,12 +355,6 @@ jobs: - name: create bluestore partitions and PVCs for wal run: tests/scripts/github-action-helper.sh create_bluestore_partitions_and_pvcs_for_wal - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: tests/scripts/github-action-helper.sh create_cluster_prerequisites @@ -536,15 +377,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload encryption-pvc-db test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: - name: encryption-pvc-db - path: test + name: encryption-pvc-db-wal - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -560,33 +395,16 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk and create partitions for osds run: | tests/scripts/github-action-helper.sh use_local_disk tests/scripts/github-action-helper.sh create_partitions_for_osds - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: | tests/scripts/localPathPV.sh $(lsblk --paths|awk '/14G/ {print $1}'| head -1) @@ -629,15 +447,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload encryption-pvc-kms-vault-token-auth test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: name: encryption-pvc-kms-vault-token-auth - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -653,33 +465,16 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk and create partitions for osds run: | tests/scripts/github-action-helper.sh use_local_disk tests/scripts/github-action-helper.sh create_partitions_for_osds - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create cluster prerequisites run: | tests/scripts/localPathPV.sh $(lsblk --paths|awk '/14G/ {print $1}'| head -1) @@ -713,15 +508,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload canary test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: - name: canary - path: test + name: encryption-pvc-kms-vault-k8s-auth - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -737,31 +526,14 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk run: tests/scripts/github-action-helper.sh use_local_disk - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: create LV on disk run: tests/scripts/github-action-helper.sh create_LV_on_disk @@ -783,15 +555,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: Upload pvc test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: name: lvm-pvc - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -807,37 +573,18 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/setup-cluster-resources with: - go-version: 1.16 - - - name: install deps - run: tests/scripts/github-action-helper.sh install_deps - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: 'v1.22.2' - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: use local disk into two partitions run: | + tests/scripts/github-action-helper.sh use_local_disk BLOCK=$(sudo lsblk --paths|awk '/14G/ {print $1}'| head -1) - BLOCK_DATA_PART=${BLOCK}1 - sudo dmsetup version||true - sudo swapoff --all --verbose - sudo umount /mnt - # search for the device since it keeps changing between sda and sdb - sudo wipefs --all --force "$BLOCK_DATA_PART" tests/scripts/create-bluestore-partitions.sh --disk "$BLOCK" --osd-count 2 sudo lsblk - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: deploy first cluster rook run: | tests/scripts/github-action-helper.sh deploy_first_rook_cluster @@ -997,15 +744,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh - - - name: upload test result - uses: actions/upload-artifact@v2 - if: always() + uses: ./.github/workflows/collect-logs with: name: multi-cluster-mirroring - path: test - name: setup tmate session for debugging when event is PR if: failure() && github.event_name == 'pull_request' @@ -1030,7 +771,6 @@ jobs: run: | tests/scripts/github-action-helper.sh install_deps sudo apt-get install -y s3cmd - - name: setup minikube uses: manusa/actions-setup-minikube@v2.3.1 with: @@ -1045,7 +785,6 @@ jobs: tests/scripts/github-action-helper.sh use_local_disk tests/scripts/create-bluestore-partitions.sh --disk "$BLOCK" --osd-count 2 sudo lsblk - - name: build rook run: tests/scripts/github-action-helper.sh build_rook @@ -1055,7 +794,6 @@ jobs: kubectl create -f cluster/examples/kubernetes/ceph/object-multisite-test.yaml # wait for multisite store to be created tests/scripts/github-action-helper.sh wait_for_rgw rook-ceph - - name: prep second cluster pull realm config run: | cd cluster/examples/kubernetes/ceph/ @@ -1065,14 +803,12 @@ jobs: BASE64_SECRET_KEY=$(kubectl -n rook-ceph get secrets realm-a-keys -o jsonpath="{.data.secret-key}") sed -i 's/VzFjNFltMVdWRTFJWWxZelZWQT0=/'"$BASE64_ACCESS_KEY"'/g' object-multisite-pull-realm-test.yaml sed -i 's/WVY1MFIxeExkbG84U3pKdlRseEZXVGR3T3k1U1dUSS9KaTFoUVE9PQ==/'"$BASE64_SECRET_KEY"'/g' object-multisite-pull-realm-test.yaml - - name: deploy second cluster rook run: | tests/scripts/github-action-helper.sh deploy_second_rook_cluster kubectl create -f cluster/examples/kubernetes/ceph/object-multisite-pull-realm-test.yaml # wait for realms to be pulled and zone-b-multisite-store to be created tests/scripts/github-action-helper.sh wait_for_rgw rook-ceph-secondary - - name: write an object to one cluster, read from the other run: tests/scripts/github-action-helper.sh write_object_to_cluster1_read_from_cluster2 @@ -1088,7 +824,6 @@ jobs: not_committed_msg="there are no changes to commit for RGW configuration period for CephObjectStore" tests/scripts/github-action-helper.sh wait_for_operator_log_message "${not_committed_msg} ${ns_name_primary}" 120 tests/scripts/github-action-helper.sh wait_for_operator_log_message "${not_committed_msg} ${ns_name_secondary}" 90 - - name: collect common logs if: always() run: | diff --git a/.github/workflows/collect-logs/action.yaml b/.github/workflows/collect-logs/action.yaml new file mode 100644 index 000000000..9b380b311 --- /dev/null +++ b/.github/workflows/collect-logs/action.yaml @@ -0,0 +1,21 @@ +# This isn't to be used for the go integration tests because their logs are placed in a different location and require few extra steps. +name: Log Collector +description: Log collector for canary test +inputs: + name: + description: Name to use for the workflow + required: true + +runs: + using: "composite" + steps: + - name: collect common logs + shell: bash --noprofile --norc -eo pipefail -x {0} + run: | + tests/scripts/collect-logs.sh + + - name: Upload canary test result + uses: actions/upload-artifact@v2 + with: + name: ${{ inputs.name }} + path: test diff --git a/.github/workflows/daily-nightly-jobs.yml b/.github/workflows/daily-nightly-jobs.yml index 9236b9271..afc437e38 100644 --- a/.github/workflows/daily-nightly-jobs.yml +++ b/.github/workflows/daily-nightly-jobs.yml @@ -78,8 +78,9 @@ jobs: - name: collect common logs if: always() - run: | - tests/scripts/collect-logs.sh + uses: ./.github/workflows/collect-logs + with: + name: canary-arm64 - name: upload canary test result uses: actions/upload-artifact@v2 @@ -96,27 +97,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: "v1.23.2" - kubernetes version: "v1.22.2" - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: "1.22.2" - name: TestCephSmokeSuite run: | @@ -146,27 +131,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: "v1.23.2" - kubernetes version: "v1.22.2" - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: "1.22.2" - name: TestCephSmokeSuite run: | @@ -196,27 +165,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: "v1.23.2" - kubernetes version: "v1.22.2" - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: "1.22.2" - name: TestCephObjectSuite run: | @@ -246,27 +199,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: "v1.23.2" - kubernetes version: "v1.22.2" - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: "1.22.2" - name: TestCephObjectSuite run: | @@ -296,27 +233,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: "v1.23.2" - kubernetes version: "v1.22.2" - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: "1.22.2" - name: TestCephUpgradeSuite run: | @@ -346,27 +267,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: "v1.23.2" - kubernetes version: "v1.22.2" - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: "1.22.2" - name: TestCephUpgradeSuite run: | diff --git a/.github/workflows/integration-test-helm-suite.yaml b/.github/workflows/integration-test-helm-suite.yaml index 20196903d..07cc63fed 100644 --- a/.github/workflows/integration-test-helm-suite.yaml +++ b/.github/workflows/integration-test-helm-suite.yaml @@ -24,31 +24,15 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.3.1 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: remove read permission from kube config file run: sudo chmod go-r ~/.kube/config - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - - name: TestCephHelmSuite run: | tests/scripts/github-action-helper.sh collect_udev_logs_in_background diff --git a/.github/workflows/integration-test-mgr-suite.yaml b/.github/workflows/integration-test-mgr-suite.yaml index a1dc8e429..9418fac2a 100644 --- a/.github/workflows/integration-test-mgr-suite.yaml +++ b/.github/workflows/integration-test-mgr-suite.yaml @@ -23,27 +23,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephMgrSuite run: | diff --git a/.github/workflows/integration-test-multi-cluster-suite.yaml b/.github/workflows/integration-test-multi-cluster-suite.yaml index 06503b4f6..d51ac9c68 100644 --- a/.github/workflows/integration-test-multi-cluster-suite.yaml +++ b/.github/workflows/integration-test-multi-cluster-suite.yaml @@ -24,27 +24,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephMultiClusterDeploySuite run: | diff --git a/.github/workflows/integration-test-object-suite.yaml b/.github/workflows/integration-test-object-suite.yaml index 8cbf86af8..90a30c07f 100644 --- a/.github/workflows/integration-test-object-suite.yaml +++ b/.github/workflows/integration-test-object-suite.yaml @@ -24,27 +24,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephObjectSuite run: | diff --git a/.github/workflows/integration-test-setup/action.yaml b/.github/workflows/integration-test-setup/action.yaml new file mode 100644 index 000000000..4c9f2f659 --- /dev/null +++ b/.github/workflows/integration-test-setup/action.yaml @@ -0,0 +1,37 @@ +name: Cluster Setup +description: Cluster setup for integration test +inputs: + kubernetes-version: + description: kubernetes version to use for the workflow + required: true + github-token: + description: GITHUB_TOKEN from the calling workflow + required: true + +runs: + using: "composite" + steps: + - name: setup golang + uses: actions/setup-go@v2 + with: + go-version: 1.16 + + - name: setup minikube + uses: manusa/actions-setup-minikube@v2.4.2 + with: + minikube version: "v1.23.2" + kubernetes version: ${{ inputs.kubernetes-version }} + start args: --memory 6g --cpus=2 + github token: ${{ inputs.github-token }} + + - name: print k8s cluster status + shell: bash --noprofile --norc -eo pipefail -x {0} + run: tests/scripts/github-action-helper.sh print_k8s_cluster_status + + - name: use local disk + shell: bash --noprofile --norc -eo pipefail -x {0} + run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test + + - name: build rook + shell: bash --noprofile --norc -eo pipefail -x {0} + run: tests/scripts/github-action-helper.sh build_rook diff --git a/.github/workflows/integration-test-smoke-suite.yaml b/.github/workflows/integration-test-smoke-suite.yaml index b08082288..a9dd1ca46 100644 --- a/.github/workflows/integration-test-smoke-suite.yaml +++ b/.github/workflows/integration-test-smoke-suite.yaml @@ -24,28 +24,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook - + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephSmokeSuite run: | diff --git a/.github/workflows/integration-test-upgrade-suite.yaml b/.github/workflows/integration-test-upgrade-suite.yaml index 2e09aa351..ef5a2d7c7 100644 --- a/.github/workflows/integration-test-upgrade-suite.yaml +++ b/.github/workflows/integration-test-upgrade-suite.yaml @@ -24,27 +24,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephUpgradeSuite run: | diff --git a/.github/workflows/integration-tests-on-release.yaml b/.github/workflows/integration-tests-on-release.yaml index a04747139..8e43a098f 100644 --- a/.github/workflows/integration-tests-on-release.yaml +++ b/.github/workflows/integration-tests-on-release.yaml @@ -25,30 +25,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.3.1 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: remove read permission from kube config file - run: sudo chmod go-r ~/.kube/config - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephHelmSuite run: | @@ -85,27 +66,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephMultiClusterDeploySuite run: | @@ -141,27 +106,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephSmokeSuite run: | @@ -196,27 +145,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephUpgradeSuite run: | @@ -252,27 +185,11 @@ jobs: with: fetch-depth: 0 - - name: setup golang - uses: actions/setup-go@v2 + - name: setup cluster resources + uses: ./.github/workflows/integration-test-setup with: - go-version: 1.16 - - - name: setup minikube - uses: manusa/actions-setup-minikube@v2.4.2 - with: - minikube version: 'v1.23.2' - kubernetes version: ${{ matrix.kubernetes-versions }} - start args: --memory 6g --cpus=2 - github token: ${{ secrets.GITHUB_TOKEN }} - - - name: print k8s cluster status - run: tests/scripts/github-action-helper.sh print_k8s_cluster_status - - - name: use local disk - run: tests/scripts/github-action-helper.sh use_local_disk_for_integration_test - - - name: build rook - run: tests/scripts/github-action-helper.sh build_rook + github-token: ${{ secrets.GITHUB_TOKEN }} + kubernetes-version: ${{ matrix.kubernetes-versions }} - name: TestCephObjectSuite run: | diff --git a/.github/workflows/setup-cluster-resources/action.yaml b/.github/workflows/setup-cluster-resources/action.yaml new file mode 100644 index 000000000..cb33f214e --- /dev/null +++ b/.github/workflows/setup-cluster-resources/action.yaml @@ -0,0 +1,34 @@ +name: Cluster Setup +description: Cluster setup for canary test +inputs: + github-token: + description: GITHUB_TOKEN from the calling workflow + required: true + +runs: + using: "composite" + steps: + - name: setup golang + uses: actions/setup-go@v2 + with: + go-version: 1.16 + + - name: setup minikube + uses: manusa/actions-setup-minikube@v2.4.2 + with: + minikube version: 'v1.23.2' + kubernetes version: 'v1.22.2' + start args: --memory 6g --cpus=2 + github token: ${{ inputs.github-token }} + + - name: install deps + shell: bash --noprofile --norc -eo pipefail -x {0} + run: tests/scripts/github-action-helper.sh install_deps + + - name: print k8s cluster status + shell: bash --noprofile --norc -eo pipefail -x {0} + run: tests/scripts/github-action-helper.sh print_k8s_cluster_status + + - name: build rook + shell: bash --noprofile --norc -eo pipefail -x {0} + run: tests/scripts/github-action-helper.sh build_rook