Wire Forge-native release infrastructure
Some checks failed
Cache: Publish Nix / Publish Nix Cache (push) Waiting to run
Build Rust / Cargo Test (push) Successful in 4m14s
Build Site / Next.js Build (push) Failing after 6s
Infra: OpenTofu / OpenTofu (grafana) (push) Successful in 5s
Lint Governance / BEP Metadata (push) Successful in 0s
Build: Android / Android Rust Core Stub (push) Failing after 23s
Some checks failed
Cache: Publish Nix / Publish Nix Cache (push) Waiting to run
Build Rust / Cargo Test (push) Successful in 4m14s
Build Site / Next.js Build (push) Failing after 6s
Infra: OpenTofu / OpenTofu (grafana) (push) Successful in 5s
Lint Governance / BEP Metadata (push) Successful in 0s
Build: Android / Android Rust Core Stub (push) Failing after 23s
This commit is contained in:
parent
97c569fb35
commit
002bd382e9
199 changed files with 14268 additions and 185 deletions
73
Scripts/ci/ensure-nsc.sh
Executable file
73
Scripts/ci/ensure-nsc.sh
Executable file
|
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if command -v nsc >/dev/null 2>&1; then
|
||||
nsc version || true
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! command -v curl >/dev/null 2>&1; then
|
||||
echo "::error ::curl is required to install nsc" >&2
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v tar >/dev/null 2>&1; then
|
||||
echo "::error ::tar is required to install nsc" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
os="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
||||
arch="$(uname -m)"
|
||||
case "$arch" in
|
||||
x86_64|amd64) arch="amd64" ;;
|
||||
aarch64|arm64) arch="arm64" ;;
|
||||
*)
|
||||
echo "::error ::Unsupported arch for nsc: ${arch}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$os" != "linux" ]]; then
|
||||
echo "::warning ::nsc bootstrap is only supported on Linux; relying on the runner or Nix shell for ${os}."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
version="${NSC_VERSION:-0.0.506}"
|
||||
expected_sha256=""
|
||||
case "${version}/${arch}" in
|
||||
0.0.506/amd64) expected_sha256="4a093e0269878a9514e7c00d99b88a924f307ad15fb9d1595ee5f6582f99a0f0" ;;
|
||||
0.0.506/arm64) expected_sha256="6acf074b67fcbaaf59a4437f6bd40da7e38438c427849c1b5fcf4621ce75aee2" ;;
|
||||
esac
|
||||
|
||||
asset="nsc_${version}_linux_${arch}.tar.gz"
|
||||
url="https://get.namespace.so/packages/nsc/v${version}/${asset}"
|
||||
tmp_dir="${RUNNER_TEMP:-${TMPDIR:-/tmp}}/burrow-nsc.$$"
|
||||
install_dir="${RUNNER_TEMP:-${TMPDIR:-/tmp}}/nsc-bin"
|
||||
mkdir -p "$tmp_dir" "$install_dir"
|
||||
trap 'rm -rf "$tmp_dir"' EXIT
|
||||
|
||||
curl -fsSL -o "${tmp_dir}/${asset}" "$url"
|
||||
if [[ -n "$expected_sha256" ]] && command -v sha256sum >/dev/null 2>&1; then
|
||||
actual_sha256="$(sha256sum "${tmp_dir}/${asset}" | awk '{print $1}')"
|
||||
if [[ "$actual_sha256" != "$expected_sha256" ]]; then
|
||||
echo "::error ::nsc ${asset} sha256 mismatch: expected ${expected_sha256}, got ${actual_sha256}" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
tar -xzf "${tmp_dir}/${asset}" -C "$tmp_dir"
|
||||
for bin in nsc bazel-credential-nsc docker-credential-nsc; do
|
||||
if [[ -x "${tmp_dir}/${bin}" ]]; then
|
||||
install -m 0755 "${tmp_dir}/${bin}" "${install_dir}/${bin}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ ! -x "${install_dir}/nsc" || ! -x "${install_dir}/bazel-credential-nsc" ]]; then
|
||||
echo "::error ::Failed to install nsc and bazel-credential-nsc from ${asset}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "${GITHUB_PATH:-}" ]]; then
|
||||
echo "${install_dir}" >> "${GITHUB_PATH}"
|
||||
fi
|
||||
export PATH="${install_dir}:$PATH"
|
||||
nsc version || true
|
||||
Loading…
Add table
Add a link
Reference in a new issue