check / check (push) Waiting to run
script/bootstrap kept any yarn 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 installs that version. The node on PATH is used only when it has the pinned major version, as REPO_POLICIES.md asks, and is at least NODE_MIN_VERSION. After installing either, bootstrap looks the tool up through PATH again, stops, naming the path, if that one fails the same check, and prints the version it uses, as for Go. Every other host script that runs yarn now goes through the new script/yarn, which uses the first node on PATH, ~/.local/bin first, when it passes the same test, 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 "$@"
|