name: Lint on: push: branches: [main] pull_request: branches: [main] permissions: contents: read pull-requests: read # cancel currently running jobs if a new version of the branch is pushed concurrency: group: ci-linting-${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: precheck: uses: alcionai/corso/.github/workflows/_filechange_checker.yml@main Linting: needs: precheck environment: Testing runs-on: ubuntu-latest defaults: run: working-directory: src steps: - name: Checkout repository uses: actions/checkout@v3 # Get values for cache paths to be used in later steps - name: Local Cache Setup if: needs.precheck.outputs.fileschanged == 'true' id: go-cache-paths run: | echo "::set-output name=go-build::$(go env GOCACHE)" echo "::set-output name=go-mod::$(go env GOMODCACHE)" - name: Golang Setup if: needs.precheck.outputs.fileschanged == 'true' uses: actions/setup-go@v3 with: go-version: 1.18 - name: Cache Go Mod if: needs.precheck.outputs.fileschanged == 'true' id: modcache uses: actions/cache@v3 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }} - name: Download package dependencies if: needs.precheck.outputs.fileschanged == 'true' && steps.modcache.outputs.cache-hit != 'true' run: go mod download - name: Cache Go build if: needs.precheck.outputs.fileschanged == 'true' id: gocache uses: actions/cache@v3 with: path: ~/.cache/go-build key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.sum') }} - name: Build for Lint if: needs.precheck.outputs.fileschanged == 'true' && steps.gocache.outputs.cache-hit != 'true' run: go build ./... - name: Go Lint if: needs.precheck.outputs.fileschanged == 'true' uses: golangci/golangci-lint-action@v3.2.0 with: version: v1.45.2 working-directory: ./src skip-pkg-cache: true skip-build-cache: true skip-go-installation: true # check licenses - name: Get go-licenses if: needs.precheck.outputs.fileschanged == 'true' run: go install github.com/google/go-licenses@latest - name: Run go-licenses if: needs.precheck.outputs.fileschanged == 'true' run: go-licenses check github.com/alcionai/corso/src --ignore github.com/alcionai/corso/src