name: CI on: push: branches: - master - release-* pull_request: {} workflow_dispatch: {} env: # Common versions GO_VERSION: '1.19' GOLANGCI_VERSION: 'v1.52' jobs: golangci-lint: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v2 with: submodules: true - name: Setup Go uses: actions/setup-go@v2 with: go-version: ${{ env.GO_VERSION }} - name: Cache Go Dependencies uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-go- - name: Code generate run: | make generate - name: Lint golang code uses: golangci/golangci-lint-action@v6 with: version: ${{ env.GOLANGCI_VERSION }} args: --verbose unit-tests: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: true - name: Fetch History run: git fetch --prune --unshallow - name: Setup Go uses: actions/setup-go@v2 with: go-version: ${{ env.GO_VERSION }} - name: Cache Go Dependencies uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: ${{ runner.os }}-go- - name: Run Unit Tests run: | make test git status - name: Publish Unit Test Coverage uses: codecov/codecov-action@v1 with: flags: unittests file: cover.out - name: Check diff run: '[[ -z $(git status -s) ]] || (printf "Existing modified/untracked files.\nPlease run \"make generate manifests\" and push again.\n"; exit 1)'