mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-10 15:07:24 +00:00
The use of "go install" is deprecated as a way of installing and running the Mockery binary. Update the runner script to depend on an ambient version of the tool and ensure that in CI it's installed.
76 lines
2.3 KiB
YAML
76 lines
2.3 KiB
YAML
# 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:
|
|
- master
|
|
|
|
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
|