check / check (push) Waiting to run
script/bootstrap kept any yarn found on PATH, so YARN_VERSION applied only where none was installed. It now keeps the yarn on PATH only when yarn --version is exactly YARN_VERSION, and otherwise prepares that version through corepack. The node on PATH is used only when it has the pinned major version and is at least NODE_MIN_VERSION, as REPO_POLICIES.md asks. After installing either, bootstrap looks the tool up through PATH again, stops naming the path if it is not the pinned one, and prints the version it uses, as it does for Go. The other host scripts that run yarn run it through the new script/yarn, which uses the same node test with ~/.local/bin first on PATH, and otherwise the pinned node in nvm. Model: opus-5-5
28 lines
1.0 KiB
Bash
Executable File
28 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# script/frontend-test: run the frontend test suite on the host: the
|
|
# unit tests in test/unit/, through the test script in package.json,
|
|
# then the production build, which fails on broken code. make test runs
|
|
# the same tests in the frontend-test stage of Dockerfile, and the image
|
|
# build runs the production build in its frontend-build stage. The tests
|
|
# print a dot each; if any fails, they run again with every test listed,
|
|
# and the script fails even if that run passes. NODE_OPTIONS chooses the
|
|
# reporter because yarn adds its arguments after the test files, where
|
|
# node would take a reporter option for one more file.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
NODE_OPTIONS=--test-reporter=dot \
|
|
timeout 90 "$ROOT/script/yarn" --silent run test || {
|
|
echo "--- Rerunning with every test listed for details ---"
|
|
NODE_OPTIONS=--test-reporter=spec \
|
|
timeout 90 "$ROOT/script/yarn" --silent run test
|
|
exit 1
|
|
}
|
|
timeout 30 "$ROOT/script/yarn" build
|
|
}
|
|
|
|
main "$@"
|