#!/usr/bin/env bash set -euo pipefail # Gitea's act runner does not preserve setup-node's GITHUB_PATH update between # steps. Link the downloaded, version-pinned runtime into a stable PATH entry so # later Node.js, Corepack, and pnpm steps cannot fall back to the runner image. node_version="$(tr -d '[:space:]' < .nvmrc)" node_version="${node_version#v}" tool_cache="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}" install_directory="${HIVEGRID_CI_TOOL_BIN:-/usr/local/bin}" node_binary="$(find "$tool_cache/node/$node_version" -type f -path '*/bin/node' -perm -u+x -print -quit 2>/dev/null || true)" if [[ -z "$node_binary" ]]; then echo "setup-node runtime $node_version was not found below $tool_cache/node" >&2 exit 1 fi node_bin_directory="$(dirname "$node_binary")" corepack_binary="$node_bin_directory/corepack" if [[ ! -x "$corepack_binary" ]]; then echo "Corepack is missing beside setup-node runtime $node_binary" >&2 exit 1 fi if [[ ! -d "$install_directory" || ! -w "$install_directory" ]]; then echo "Persistent tool directory $install_directory is not writable" >&2 exit 1 fi ln -sfn "$node_binary" "$install_directory/node" ln -sfn "$corepack_binary" "$install_directory/corepack" actual_version="$("$install_directory/node" --version)" if [[ "$actual_version" != "v$node_version" ]]; then echo "Persistent Node.js runtime mismatch: expected v$node_version, got $actual_version" >&2 exit 1 fi echo "Persisted Node.js $actual_version and Corepack in $install_directory"