artifacts/scripts/resolve_k3s_versions.sh
2025-09-13 16:12:01 +08:00

42 lines
1.2 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# scripts/resolve_k3s_versions.sh
# 输出:写入 $GITHUB_OUTPUT -> version, recent_versions
# 环境变量:
# OVERRIDE_VERSION 可选,手工覆盖版本(如 v1.30.0+k3s1
set -euo pipefail
OVERRIDE_VERSION="${OVERRIDE_VERSION:-}"
API_URL="https://api.github.com/repos/k3s-io/k3s/releases?per_page=100"
COMMON_HEADERS=(-H "Accept: application/vnd.github+json" -H "User-Agent: resolve_k3s_versions")
if [[ -n "${GITHUB_TOKEN:-}" ]]; then
COMMON_HEADERS+=(-H "Authorization: Bearer ${GITHUB_TOKEN}")
fi
resolve_latest() {
if [[ -n "${OVERRIDE_VERSION}" ]]; then
echo "${OVERRIDE_VERSION}"
return
fi
curl -fsSL "${COMMON_HEADERS[@]}" "${API_URL}" \
| jq -r '[.[] | select(.prerelease==false and .draft==false) | .tag_name] | sort -V | last'
}
resolve_recent() {
curl -fsSL "${COMMON_HEADERS[@]}" "${API_URL}" \
| jq -r '[.[] | select(.prerelease==false and .draft==false) | .tag_name] | sort -V | reverse | .[0:3] | @tsv'
}
LATEST="$(resolve_latest)"
RECENT="$(resolve_recent)"
{
echo "version=${LATEST}"
echo "recent_versions=${RECENT}"
} >> "${GITHUB_OUTPUT}"
echo "Resolved latest stable k3s version: ${LATEST}"
echo "Recent versions: ${RECENT}"