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"