All checks were successful
check / check (push) Successful in 23s
Per the owner ruling on issue 40, linting and testing are phases of the main Dockerfile rather than a separate lint file. script/lint and script/test build one phase each by name with caching disabled, and the final stage copies a harmless file from each so the image cannot be built unless both passed. A stage that is not the last is built only when something depends on it or --target names it, so the gates are invoked by name and the edges kept. script/check runs the gates and builds no image of its own; script/cibuild bootstraps first, because CI runs it alone and fmt-check is native. fmt and fmt-check source nvm for the pinned node before calling yarn, which bootstrap installs but leaves off its caller's PATH. Every build in script/ is tagged and uncached. Issue 30 closes too: a container has its own lint cache and lock. Model: opus-5
17 lines
398 B
Bash
Executable File
17 lines
398 B
Bash
Executable File
#!/bin/sh
|
|
# script/check: run all checks (test, lint, fmt-check). Our own
|
|
# extension to scripts-to-rule-them-all. test and lint are Docker
|
|
# phases; fmt-check is native, because a formatter writes the working
|
|
# tree. Must not modify any files.
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
|
|
main() {
|
|
"$SCRIPT_DIR/test"
|
|
"$SCRIPT_DIR/lint"
|
|
"$SCRIPT_DIR/fmt-check"
|
|
}
|
|
|
|
main "$@"
|