mirror of
https://github.com/0xrsydn/nix-hermes-agent.git
synced 2026-11-07 11:15:35 +00:00
Upstream main declares [project] version 0.0.0 between releases, which made the nightly pin regress from 0.21.4 to 0.0.0. Fall back to the latest release tag's version when the HEAD version is the placeholder, and correct the current candidate's pinVersion to match. Factor the pyproject version lookup into update-common.sh so both channels share one implementation.
46 lines
1.2 KiB
Bash
Executable file
46 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set_output() {
|
|
local name=$1 value=$2
|
|
if [[ -n "${GITHUB_OUTPUT:-}" ]]; then
|
|
printf '%s=%s\n' "$name" "$value" >>"$GITHUB_OUTPUT"
|
|
fi
|
|
}
|
|
|
|
extract_sri_hash() {
|
|
sed -nE 's/.*got:[[:space:]]*(sha256-[A-Za-z0-9+\/=]+).*/\1/p' "$1" | head -1
|
|
}
|
|
|
|
# Echo the ``[project]`` version from upstream's pyproject.toml at a git ref
|
|
# (branch, tag or commit sha).
|
|
upstream_pyproject_version() {
|
|
gh api -H "Accept: application/vnd.github.raw+json" \
|
|
"/repos/NousResearch/hermes-agent/contents/pyproject.toml?ref=${1}" |
|
|
python3 -c 'import sys, tomllib; print(tomllib.load(sys.stdin.buffer)["project"]["version"])'
|
|
}
|
|
|
|
realize_flake_source() {
|
|
nix build "$1.src" --no-link --print-out-paths 2>/dev/null | tail -1 || true
|
|
}
|
|
|
|
current_nix_system() {
|
|
nix eval --impure --raw --expr builtins.currentSystem
|
|
}
|
|
|
|
publish_summary() {
|
|
local report=$1
|
|
if [[ -n "${GITHUB_STEP_SUMMARY:-}" && -f "$report" ]]; then
|
|
cat "$report" >>"$GITHUB_STEP_SUMMARY"
|
|
fi
|
|
}
|
|
|
|
# Validation failure is data for the candidate PR, not a reason to discard it.
|
|
run_validation() {
|
|
local log_file=$1
|
|
shift
|
|
if "$@" >"$log_file" 2>&1; then
|
|
printf 'passed\n'
|
|
else
|
|
printf 'failed\n'
|
|
fi
|
|
}
|