name: tests on: push: branches: - 'main' - 'release*' pull_request: branches: - 'main' - 'release*' permissions: contents: read packages: write id-token: write jobs: pre-checks: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # pin@v3 # see https://michaelheap.com/ensure-github-actions-pinned-sha/ - name: Ensure SHA pinned actions uses: zgosalvez/github-actions-ensure-sha-pinned-actions@6ca5574367befbc9efdb2fa25978084159c5902d # pin@v1.3.0 - name: Setup go uses: actions/setup-go@268d8c0ca0432bb2cf416faae41297df9d262d7f # pin@v3 with: go-version: 1.17 - name: golangci-lint uses: golangci/golangci-lint-action@537aa1903e5d359d0b27dbc19ddd22c5087f3fbc # pin@v3 with: version: v1.48 - name: gofmt check run: | if [ "$(gofmt -s -l . | wc -l)" -ne 0 ] then echo "The following files were found to be not go formatted:" gofmt -s -l . echo "Please run 'make fmt' to go format the above files." exit 1 fi - name: goimports run: | if [ "$(goimports -l . | wc -l)" -ne 0 ] then echo "The following files were found to have import formatting issues:" goimports -l -l . echo "Please run 'make fmt' to go format the above files." exit 1 fi - name: Checking unused pkgs using go mod tidy run: | make unused-package-check - name: Verify generated code is up to date run: make verify-codegen - name: Go vet run: | make vet tests: strategy: fail-fast: false matrix: autogen-internals: [ true, false ] runs-on: ubuntu-latest needs: pre-checks steps: - name: Checkout uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # pin@v2.4.0 - name: Unshallow run: git fetch --prune --unshallow - name: Set up Go uses: actions/setup-go@424fc82d43fa5a37540bae62709ddcc23d9520d4 # pin@v2.1.5 with: go-version: 1.17 - name: Cache Go modules uses: actions/cache@d9747005de0f7240e5d35a68dca96b3f41b8b340 # pin@v1.2.0 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Kyverno unit test run: | export PROJECT_PATH=$(pwd) export FLAG_AUTOGEN_INTERNALS=${{ matrix.autogen-internals }} make test-unit