# Verify that generated code is up-to-date. # # Note that we run these checks regardless whether the input files have # changed, because generated code can change in response to toolchain updates # even if no files in the repository are modified. name: Check generated code on: pull_request: branches: - v0.34.x permissions: contents: read jobs: check-mocks: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v3 with: go-version: '1.18' - uses: actions/checkout@v3 - name: "Check generated mocks" run: | set -euo pipefail readonly MOCKERY=2.12.3 # N.B. no leading "v" curl -sL "https://github.com/vektra/mockery/releases/download/v${MOCKERY}/mockery_${MOCKERY}_Linux_x86_64.tar.gz" | tar -C /usr/local/bin -xzf - make mockery 2>/dev/null if ! git diff --stat --exit-code ; then echo ">> ERROR:" echo ">>" echo ">> Generated mocks require update (either Mockery or source files may have changed)." echo ">> Ensure your tools are up-to-date, re-run 'make mockery' and update this PR." echo ">>" exit 1 fi check-proto: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v3 with: go-version: '1.18' - uses: actions/checkout@v3 with: fetch-depth: 1 # we need a .git directory to run git diff - name: "Check protobuf generated code" run: | set -euo pipefail # Install buf and gogo tools, so that differences that arise from # toolchain differences are also caught. readonly tools="$(mktemp -d)" export PATH="${PATH}:${tools}/bin" export GOBIN="${tools}/bin" go install github.com/bufbuild/buf/cmd/buf go install github.com/gogo/protobuf/protoc-gen-gogofaster@latest make proto-gen if ! git diff --stat --exit-code ; then echo ">> ERROR:" echo ">>" echo ">> Protobuf generated code requires update (either tools or .proto files may have changed)." echo ">> Ensure your tools are up-to-date, re-run 'make proto-gen' and update this PR." echo ">>" exit 1 fi