name: Lint on: push: branches: [main] paths: - '**.go' - '**.sh' - '**.bash' - '**.cue' - 'docs/**' - '.golangci.yml' - 'Makefile' - 'README.md' - '.github/workflows/lint.yml' pull_request: branches: [main] paths: - '**.go' - '**.sh' - '**.bash' - '**.cue' - 'docs/**' - '.golangci.yml' - 'Makefile' - 'README.md' - '.github/workflows/lint.yml' jobs: lint: name: Lint runs-on: ubuntu-latest steps: - name: "Check out" uses: actions/checkout@v2 with: fetch-depth: 0 - name: "Set up go" uses: actions/setup-go@v1 with: go-version: 1.16 - name: "Install deps" run: | # Cue export CUE_VERSION="$(grep cue ./go.mod | cut -d' ' -f2 | head -1 | sed -E 's/\.[[:digit:]]\.[[:alnum:]]+-[[:alnum:]]+$//')" export CUE_TARBALL="cue_${CUE_VERSION}_linux_amd64.tar.gz" echo "Installing cue version $CUE_VERSION" curl -L https://github.com/cue-lang/cue/releases/download/${CUE_VERSION}/${CUE_TARBALL} | sudo tar zxf - -C /usr/local/bin - name: "Lint go" uses: golangci/golangci-lint-action@v2 with: version: v1.45 skip-go-installation: true args: --timeout=3m - name: "Lint shell" run: | make shellcheck - name: "Lint CUE" run: | make cuelint - name: "Lint docs" run: | make docslint - name: "Lint markdown" uses: avto-dev/markdown-lint@v1 with: config: ".markdownlint.yaml" args: ./docs README.md