name: Unit-Test on: push: branches: - master - release-* workflow_dispatch: {} pull_request: branches: - master - release-* env: # Common versions GO_VERSION: '1.17' GOLANGCI_VERSION: 'v1.38' KIND_VERSION: 'v0.7.0' jobs: detect-noop: runs-on: ubuntu-20.04 outputs: noop: ${{ steps.noop.outputs.should_skip }} steps: - name: Detect No-op Changes id: noop uses: fkirc/skip-duplicate-actions@v3.3.0 with: github_token: ${{ secrets.GITHUB_TOKEN }} paths_ignore: '["**.md", "**.mdx", "**.png", "**.jpg"]' do_not_skip: '["workflow_dispatch", "schedule", "push"]' concurrent_skipping: false unit-tests: runs-on: ubuntu-20.04 needs: detect-noop if: needs.detect-noop.outputs.noop != 'true' steps: - name: Set up Go uses: actions/setup-go@v1 with: go-version: ${{ env.GO_VERSION }} id: go - name: Check out code into the Go module directory uses: actions/checkout@v2 with: submodules: true - name: Cache Go Dependencies uses: actions/cache@v2 with: path: .work/pkg key: ${{ runner.os }}-pkg-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-pkg- - name: Install ginkgo run: | sudo apt-get install -y golang-ginkgo-dev - name: Setup Kind Cluster uses: engineerd/setup-kind@v0.5.0 with: version: ${{ env.KIND_VERSION }} - name: install Kubebuilder uses: RyanSiu1995/kubebuilder-action@v1.2 with: version: 3.1.0 kubebuilderOnly: false kubernetesVersion: v1.21.2 - name: Run Make test run: make test - name: Upload coverage report uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.txt flags: core-unittests name: codecov-umbrella