check / check (push) Successful in 1m3s
script/ holds the entrypoints and the Makefile targets shim to them. Linting and testing are phases of the Dockerfile, built alone by script/lint and script/test with a fresh CACHEBUST value and cache mounts for Go's build cache and golangci-lint's; the build stage depends on both, and the runtime stage ships the binary and the source without .git. Formatting stays on the host in script/fmt and script/fmt-check (gofmt and the prettier pinned in yarn.lock). script/cibuild bootstraps, runs script/check and builds the tagged image, and the Gitea workflow calls it. script/precommit refuses a commit whose go.mod or go.sum is not tidy. cgo stays off, so the test phase runs on the alpine Go image without -race; that is the one departure from the canonical Go Dockerfile. Re-vendored from the prompts repository's next branch: REPO_POLICIES.md (2026-11-04), .golangci.yml (byte-identical, so the local exhaustruct_v5 addition is gone now that canonical carries it), .gitea/workflows/check.yml, .editorconfig, .gitignore and .dockerignore, the last two followed by this repository's own entries. AGENTS.md holds the repository-specific guidance for agents. The README gains the Entrypoints section and describes the new gates.
35 lines
842 B
Bash
Executable File
35 lines
842 B
Bash
Executable File
#!/bin/sh
|
|
# script/fmt-check: check formatting (read-only): gofmt for Go, prettier
|
|
# for markdown.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
GO_DIRS="cmd internal pkg"
|
|
|
|
# Debian and Ubuntu name the yarn command yarnpkg.
|
|
run_yarn() {
|
|
if command -v yarn >/dev/null 2>&1; then
|
|
yarn "$@"
|
|
elif command -v yarnpkg >/dev/null 2>&1; then
|
|
yarnpkg "$@"
|
|
else
|
|
echo "no yarn; run script/bootstrap first" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
# shellcheck disable=SC2086 # GO_DIRS is a word list on purpose
|
|
unformatted="$(gofmt -l $GO_DIRS)"
|
|
if [ -n "$unformatted" ]; then
|
|
echo "gofmt: the following files need formatting:" >&2
|
|
echo "$unformatted" >&2
|
|
exit 1
|
|
fi
|
|
run_yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always
|
|
}
|
|
|
|
main "$@"
|