name: Lint
on:
push:
branches: [main]
paths:
- '**.go'
- '**.sh'
- '**.bash'
- '**.cue'
- 'docs/**'
- '.golangci.yml'
- 'Makefile'
- 'README.md'
- '.github/workflows/lint.yml'
pull_request:
jobs:
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
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
version: v1.39
skip-go-installation: true
args: --timeout=3m
- name: "Lint shell"
make shellcheck
- name: "Lint CUE"
make cuelint
- name: "Lint docs"
make docslint
- name: "Lint markdown"
uses: avto-dev/markdown-lint@v1
config: ".markdownlint.yaml"
args: ./docs README.md