Lint (Go) #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lint (Go) | |
run-name: make lint | |
on: | |
pull_request: | |
paths-ignore: | |
- "docs/**" | |
- "rfd/**" | |
- "**/*.md*" | |
merge_group: | |
paths-ignore: | |
- "docs/**" | |
- "rfd/**" | |
- "**/*.md*" | |
jobs: | |
lint: | |
name: Lint (Go) | |
runs-on: ubuntu-22.04-16core | |
permissions: | |
contents: read | |
container: | |
image: ghcr.io/gravitational/teleport-buildbox:teleport15 | |
env: | |
GOLANGCI_LINT_VERSION: v1.55.2 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Run `go mod tidy` | |
run: rm go.sum api/go.sum && go mod tidy && (cd api && go mod tidy) | |
- name: Check for no changes after `go mod tidy` | |
# We have to add the current directory as a safe directory or else git commands will not work as expected. | |
run: git config --global --add safe.directory $( realpath . ) && git diff --exit-code -- go.mod go.sum api/go.mod api/go.sum | |
# Run various golangci-lint checks. | |
# TODO(codingllama): Using go.work could save a bunch of repetition here. | |
- name: golangci-lint (api) | |
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 | |
with: | |
version: ${{ env.GOLANGCI_LINT_VERSION }} | |
working-directory: api | |
skip-cache: true | |
- name: golangci-lint (teleport) | |
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 | |
with: | |
version: ${{ env.GOLANGCI_LINT_VERSION }} | |
args: --build-tags libfido2,piv | |
skip-cache: true | |
- name: golangci-lint (assets/backport) | |
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 | |
with: | |
version: ${{ env.GOLANGCI_LINT_VERSION }} | |
working-directory: assets/backport | |
skip-cache: true | |
- name: golangci-lint (build.assets/tooling) | |
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0 | |
with: | |
version: ${{ env.GOLANGCI_LINT_VERSION }} | |
working-directory: build.assets/tooling | |
skip-cache: true | |
- uses: bufbuild/buf-setup-action@382440cdb8ec7bc25a68d7b4711163d95f7cc3aa # v1.28.1 | |
with: | |
github_token: ${{ github.token }} | |
version: v1.28.0 | |
- uses: bufbuild/buf-lint-action@044d13acb1f155179c606aaa2e53aea304d22058 # v1.1.0 | |
- name: buf breaking from parent to self | |
uses: bufbuild/buf-breaking-action@a074e988ee34efcd4927079e79c611f428354c01 # v1.1.3 | |
with: | |
against: "https://github.com/${GITHUB_REPOSITORY}.git#branch=${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha }}" | |
- name: buf breaking from self to master | |
uses: bufbuild/buf-breaking-action@a074e988ee34efcd4927079e79c611f428354c01 # v1.1.3 | |
if: ${{ github.base_ref != 'master' && github.event.merge_group.base_ref != 'refs/heads/master' }} | |
with: | |
input: "https://github.com/${GITHUB_REPOSITORY}.git#branch=master" | |
against: "." | |
# TODO(codingllama): Consider https://github.com/actions-rs/clippy-check | |
# for Rust. | |
- name: Run (non-action) linters | |
run: make lint-no-actions | |
- name: Check if protos are up to date | |
# We have to add the current directory as a safe directory or else git commands will not work as expected. | |
run: git config --global --add safe.directory $(realpath .) && make protos-up-to-date/host | |
- name: Check if Operator CRDs are up to date | |
# We have to add the current directory as a safe directory or else git commands will not work as expected. | |
run: git config --global --add safe.directory $(realpath .) && make crds-up-to-date |