github.com/oam-dev/kubevela@v1.9.11/.github/workflows/unit-test.yml (about)

     1  name: Unit-Test
     2  
     3  on:
     4    push:
     5      branches:
     6        - master
     7        - release-*
     8    workflow_dispatch: { }
     9    pull_request:
    10      branches:
    11        - master
    12        - release-*
    13  
    14  permissions:
    15    contents: read
    16  
    17  env:
    18    # Common versions
    19    GO_VERSION: '1.19'
    20  
    21  jobs:
    22  
    23    detect-noop:
    24      permissions:
    25        actions: write  # for fkirc/skip-duplicate-actions to skip or stop workflow runs
    26      runs-on: ubuntu-22.04
    27      outputs:
    28        noop: ${{ steps.noop.outputs.should_skip }}
    29      steps:
    30        - name: Detect No-op Changes
    31          id: noop
    32          uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf
    33          with:
    34            github_token: ${{ secrets.GITHUB_TOKEN }}
    35            paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]'
    36            do_not_skip: '["workflow_dispatch", "schedule", "push"]'
    37          continue-on-error: true
    38  
    39    unit-tests:
    40      runs-on: ubuntu-22.04
    41      needs: detect-noop
    42      if: needs.detect-noop.outputs.noop != 'true'
    43  
    44      steps:
    45        - name: Set up Go
    46          uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491
    47          with:
    48            go-version: ${{ env.GO_VERSION }}
    49  
    50        - name: Check out code into the Go module directory
    51          uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
    52          with:
    53            submodules: true
    54  
    55        - name: Cache Go Dependencies
    56          uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84
    57          with:
    58            path: .work/pkg
    59            key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }}
    60            restore-keys: ${{ runner.os }}-pkg-
    61  
    62        - name: Install ginkgo
    63          run: |
    64            sudo sed -i 's/azure\.//' /etc/apt/sources.list
    65            sudo apt-get update
    66            sudo apt-get install -y golang-ginkgo-dev
    67  
    68        - name: Setup KinD
    69          run: |
    70            go install sigs.k8s.io/kind@v0.19.0
    71            kind create cluster
    72  
    73        - name: install Kubebuilder
    74          uses: RyanSiu1995/kubebuilder-action@7170cb0476187070ae04cbb6cee305e809de2693
    75          with:
    76            version: 3.9.1
    77            kubebuilderOnly: false
    78            kubernetesVersion: v1.26.2
    79  
    80        - name: Run Make test
    81          run: make test
    82  
    83        - name: Upload coverage report
    84          uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
    85          with:
    86            token: ${{ secrets.CODECOV_TOKEN }}
    87            file: ./coverage.txt
    88            flags: core-unittests
    89            name: codecov-umbrella