mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-12-25 14:57:13 +00:00
* Migrate protobuf generation to Buf Buf simplifies the generation story and allows us to lean into other features in the Buf ecosystem, such as dependency management, linting, breaking change detection, formatting and remote plugins. * Format all protobuf files with buf Also add a CI job to ensure formatting remains consistent * Add CI job to warn on proto generate diffs Some files were not regenerated with the latest version of the protobuf binary. This CI job will ensure we are always detect if the protobuf files need regenerating. * Add CI job for linting protobuf files
107 lines
3.3 KiB
YAML
107 lines
3.3 KiB
YAML
name: Run linters
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
push:
|
|
branches:
|
|
- main
|
|
- release/**
|
|
|
|
concurrency:
|
|
group: ${{ github.head_ref || github.run_id }}-lint
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
deprecations:
|
|
name: Deprecated functions
|
|
runs-on: ubuntu-latest
|
|
if: github.base_ref == 'main'
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: ./.github/actions/set-up-go
|
|
with:
|
|
github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
|
|
- run: make ci-deprecations
|
|
name: Check deprecations
|
|
|
|
codechecker:
|
|
name: Code checks
|
|
runs-on: ubuntu-latest
|
|
if: github.base_ref == 'main'
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: ./.github/actions/set-up-go
|
|
with:
|
|
github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
|
|
# Note: if there is a function we want to ignore the nilnil check for,
|
|
# You can add 'ignore-nil-nil-function-check' somewhere in the
|
|
# godoc for the function.
|
|
- run: make ci-vet-codechecker
|
|
name: Check custom linters
|
|
- run: |
|
|
make bootstrap
|
|
make protolint
|
|
name: Protobuf lint
|
|
|
|
generate-delta:
|
|
name: Protobuf generate delta
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
- uses: ./.github/actions/set-up-go
|
|
with:
|
|
github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
|
|
- name: Check generate delta
|
|
run: |
|
|
make bootstrap
|
|
# Delete all protobuf files first, in case we removed a protobuf file
|
|
find . -type f -name '*.pb.go' -delete
|
|
make proto
|
|
if ! git diff --exit-code; then
|
|
echo "Protobuf files need regenerating. Run 'make proto' to fix"
|
|
exit 1
|
|
fi
|
|
|
|
format:
|
|
name: Format
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
- uses: ./.github/actions/set-up-go
|
|
with:
|
|
github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
|
|
- name: Go format
|
|
run: |
|
|
make ci-bootstrap
|
|
echo "Using gofumpt version $(go run mvdan.cc/gofumpt -version)"
|
|
make fmt
|
|
if ! git diff --exit-code; then
|
|
echo "Code has formatting errors. Run 'make fmt' to fix"
|
|
exit 1
|
|
fi
|
|
- name: Protobuf format
|
|
run: |
|
|
make bootstrap
|
|
echo "Using buf version $(go run github.com/bufbuild/buf/cmd/buf --version)"
|
|
make protofmt
|
|
if ! git diff --exit-code; then
|
|
echo "Protobuf code has formatting errors. Run 'make protofmt' to fix"
|
|
exit 1
|
|
fi
|
|
|
|
semgrep:
|
|
name: Semgrep
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: returntocorp/semgrep@sha256:ffc6f3567654f9431456d49fd059dfe548f007c494a7eb6cd5a1a3e50d813fb3
|
|
steps:
|
|
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
- name: Run Semgrep Rules
|
|
id: semgrep
|
|
run: semgrep ci --include '*.go' --config 'tools/semgrep/ci'
|