Never regenerate mf.pb.go during checks; fail when it is stale (closes #71)
check / check (push) Failing after 2s
check / check (push) Failing after 2s
The test and format scripts regenerated mfer/mf.pb.go whenever mfer/mf.proto looked newer by mtime, which a fresh checkout often causes, so make check could rewrite a committed file and needed protoc. Nothing regenerates it any more except make generate (script/generate), which also records the hash of mf.proto in mfer/mf.proto.sha256. A Go test compares that hash with mf.proto and fails, naming make generate, when they differ; it needs no protoc. The Makefile's mtime rule for mf.pb.go, make clean's deletion of it and the Dockerfile's touch workarounds are removed. Model: opus-5-5
This commit is contained in:
Executable
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
# script/generate: regenerate mfer/mf.pb.go from mfer/mf.proto, and record
|
||||
# the hash of that mf.proto in mfer/mf.proto.sha256. Nothing else
|
||||
# regenerates mf.pb.go: it is committed, so building and checking need no
|
||||
# protoc. Needs protoc and protoc-gen-go on PATH. A test fails while
|
||||
# mf.proto no longer matches the recorded hash.
|
||||
set -eu
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
||||
|
||||
main() {
|
||||
cd "$ROOT/mfer"
|
||||
go generate .
|
||||
shasum -a 256 mf.proto >mf.proto.sha256
|
||||
}
|
||||
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user