github.com/oam-dev/kubevela@v1.9.11/.github/workflows/e2e-multicluster-test.yml (about) 1 name: E2E MultiCluster Test 2 3 on: 4 push: 5 branches: 6 - master 7 - release-* 8 tags: 9 - v* 10 workflow_dispatch: {} 11 pull_request: 12 branches: 13 - master 14 - release-* 15 16 permissions: 17 contents: read 18 19 env: 20 # Common versions 21 GO_VERSION: '1.19' 22 23 jobs: 24 25 detect-noop: 26 permissions: 27 actions: write 28 runs-on: ubuntu-22.04 29 outputs: 30 noop: ${{ steps.noop.outputs.should_skip }} 31 steps: 32 - name: Detect No-op Changes 33 id: noop 34 uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf 35 with: 36 github_token: ${{ secrets.GITHUB_TOKEN }} 37 paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]' 38 do_not_skip: '["workflow_dispatch", "schedule", "push"]' 39 continue-on-error: true 40 41 e2e-multi-cluster-tests: 42 runs-on: self-hosted 43 needs: [ detect-noop ] 44 if: needs.detect-noop.outputs.noop != 'true' 45 strategy: 46 matrix: 47 k8s-version: ["v1.26"] 48 concurrency: 49 group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.k8s-version }} 50 cancel-in-progress: true 51 52 steps: 53 - name: Check out code into the Go module directory 54 uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 55 56 - name: Install tools 57 run: | 58 sudo apt-get update 59 sudo apt-get install make gcc jq ca-certificates curl gnupg -y 60 sudo snap install kubectl --classic 61 sudo snap install helm --classic 62 63 - name: Setup Go 64 uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 65 with: 66 go-version: ${{ env.GO_VERSION }} 67 68 - name: Get dependencies 69 run: | 70 go get -v -t -d ./... 71 72 - name: Setup KinD 73 run: | 74 go install sigs.k8s.io/kind@v0.19.0 75 kind delete cluster --name worker || true 76 kind create cluster --name worker --image=kindest/node:v1.26.4 77 kind export kubeconfig --internal --name worker --kubeconfig /tmp/worker.kubeconfig 78 kind delete cluster || true 79 kind create cluster --image=kindest/node:v1.26.4 80 81 - name: Load image 82 run: | 83 mkdir -p $HOME/tmp/ 84 TMPDIR=$HOME/tmp/ make image-load 85 86 - name: Cleanup for e2e tests 87 run: | 88 make vela-cli 89 make e2e-cleanup 90 make e2e-setup-core-auth 91 92 - name: Run e2e multicluster tests 93 run: | 94 export PATH=$(pwd)/bin:$PATH 95 make e2e-multicluster-test 96 97 - name: Stop kubevela, get profile 98 run: | 99 make end-e2e-core-shards 100 101 - name: Upload coverage report 102 uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d 103 with: 104 token: ${{ secrets.CODECOV_TOKEN }} 105 files: /tmp/e2e-profile.out,/tmp/e2e_multicluster_test.out 106 flags: e2e-multicluster-test 107 name: codecov-umbrella 108 109 - name: Clean e2e profile 110 run: rm /tmp/e2e-profile.out 111 112 - name: Cleanup image 113 if: ${{ always() }} 114 run: | 115 make image-cleanup 116 docker image prune -f --filter "until=24h"