check / check (push) Canceled after 0s
script/bootstrap used whatever node was installed, so on the CI runner image, which ships node 24, the pinned yarn 1.22.22 ran under node 24 and printed the deprecation warning DEP0169 on every bootstrap. It now uses the installed node only when its major version is the pinned one, and otherwise installs the pinned node with nvm, as it already did when node was missing, with yarn and the packages under it. Only the major is compared because the Dockerfile stages use a node 22 alpine image that nvm cannot replace. script/fmt and script/fmt-check run yarn under nvm's pinned node when nvm has it installed, and otherwise the yarn on PATH. Model: opus-5-5
33 lines
1000 B
Bash
Executable File
33 lines
1000 B
Bash
Executable File
#!/bin/sh
|
|
# script/fmt-check: check formatting (read-only).
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
# Must match the pin in script/bootstrap.
|
|
NODE_VERSION="22.17.0"
|
|
|
|
# When the installed node is not the pinned major version,
|
|
# script/bootstrap installs the pinned node and yarn under nvm and
|
|
# leaves neither on the PATH of the shell that called it. So yarn runs
|
|
# under nvm's pinned node when nvm has it installed, and otherwise is
|
|
# the yarn on PATH. nvm is a bash script, hence the subshell.
|
|
run_yarn() {
|
|
if [ -d "$HOME/.nvm/versions/node/v$NODE_VERSION" ]; then
|
|
exec bash -c '. "$HOME/.nvm/nvm.sh" && nvm use "$1" >/dev/null &&
|
|
shift && exec yarn "$@"' bash "$NODE_VERSION" "$@"
|
|
fi
|
|
if ! command -v yarn >/dev/null 2>&1; then
|
|
echo "fmt-check: no yarn; run script/bootstrap first" >&2
|
|
exit 1
|
|
fi
|
|
exec yarn "$@"
|
|
}
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
run_yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always
|
|
}
|
|
|
|
main "$@"
|