BC-250 console image: custom GNOME recipe with remote admin
Build Bazzite BC-250 / Check Bazzite channel digests (push) Has been cancelled
Build Bazzite BC-250 / Build Custom Image (push) Has been cancelled
Build Bazzite BC-250 / Build Custom 40CU Image (push) Has been cancelled
Build Bazzite BC-250 / Save Bazzite channel digest cache (push) Has been cancelled
Build Bazzite BC-250 / Publish GitHub Release (push) Has been cancelled
Build Bazzite BC-250 / Check Bazzite channel digests (push) Has been cancelled
Build Bazzite BC-250 / Build Custom Image (push) Has been cancelled
Build Bazzite BC-250 / Build Custom 40CU Image (push) Has been cancelled
Build Bazzite BC-250 / Save Bazzite channel digest cache (push) Has been cancelled
Build Bazzite BC-250 / Publish GitHub Release (push) Has been cancelled
Based on 62fixolab/Latest-Bazzite-AMD-BC-250-Patched-Images @ 347fd4d. Adds on top of the fork: - recipes/bc250-console-gnome.yml: governor + gnome-remote-desktop + openssh-server, sshd enabled, hhd.service masked, no signing module (local build + ISO path) - files/console/usr/bin/bc250-remote-setup: one-time on-box SSH/RDP setup - files/console/usr/lib/bootc/kargs.d/50-bc250-ttm.toml: ttm memory kargs - BUILD-CONSOLE.md: build -> ISO -> validation instructions files/console/ is separate from files/system/ so the 40-CU unlock tooling stays out of this stable 24-CU image. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Executable
+135
@@ -0,0 +1,135 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(git rev-parse --show-toplevel)"
|
||||
DATE=""
|
||||
PUBLISH=0
|
||||
OWNER=""
|
||||
REPO=""
|
||||
TARGET=""
|
||||
RUN_URL=""
|
||||
OUTPUT=""
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
scripts/publish-release.sh --date YYYY.MM.DD [--publish]
|
||||
|
||||
Options:
|
||||
--date DATE Release date, accepts YYYY.MM.DD, YYYY-MM-DD, or YYYYMMDD.
|
||||
--publish Create or update the GitHub Release. Omit for dry-run.
|
||||
--owner OWNER GitHub/GHCR owner. Defaults to current repo owner.
|
||||
--repo REPO GitHub repo name. Defaults to current repo name.
|
||||
--target SHA Target commit for the Release tag. Defaults to HEAD.
|
||||
--run-url URL Optional workflow run URL for release notes.
|
||||
--output FILE Dry-run notes output path.
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--date)
|
||||
DATE="${2:?Missing value for --date}"
|
||||
shift 2
|
||||
;;
|
||||
--publish)
|
||||
PUBLISH=1
|
||||
shift
|
||||
;;
|
||||
--owner)
|
||||
OWNER="${2:?Missing value for --owner}"
|
||||
shift 2
|
||||
;;
|
||||
--repo)
|
||||
REPO="${2:?Missing value for --repo}"
|
||||
shift 2
|
||||
;;
|
||||
--target)
|
||||
TARGET="${2:?Missing value for --target}"
|
||||
shift 2
|
||||
;;
|
||||
--run-url)
|
||||
RUN_URL="${2:?Missing value for --run-url}"
|
||||
shift 2
|
||||
;;
|
||||
--output)
|
||||
OUTPUT="${2:?Missing value for --output}"
|
||||
shift 2
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown argument: $1" >&2
|
||||
usage >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$DATE" ]]; then
|
||||
echo "--date is required" >&2
|
||||
usage >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [[ -z "$OWNER" || -z "$REPO" ]]; then
|
||||
OWNER="${OWNER:-$(gh repo view --json owner --jq '.owner.login')}"
|
||||
REPO="${REPO:-$(gh repo view --json name --jq '.name')}"
|
||||
fi
|
||||
|
||||
release_tag="$(
|
||||
python3 - "$DATE" <<'PY'
|
||||
import re
|
||||
import sys
|
||||
raw = sys.argv[1]
|
||||
match = re.fullmatch(r"(\d{4})[.-]?(\d{2})[.-]?(\d{2})", raw)
|
||||
if not match:
|
||||
raise SystemExit(f"Invalid date: {raw}")
|
||||
print(".".join(match.groups()))
|
||||
PY
|
||||
)"
|
||||
|
||||
if [[ -z "$OUTPUT" ]]; then
|
||||
OUTPUT="$ROOT/release-preview/$release_tag.md"
|
||||
fi
|
||||
|
||||
args=(
|
||||
"$ROOT/scripts/generate-release-notes.py"
|
||||
--owner "$OWNER"
|
||||
--repo "$REPO"
|
||||
--date "$release_tag"
|
||||
--output "$OUTPUT"
|
||||
)
|
||||
|
||||
if [[ -n "$TARGET" ]]; then
|
||||
args+=(--commit "$TARGET")
|
||||
fi
|
||||
|
||||
if [[ -n "$RUN_URL" ]]; then
|
||||
args+=(--run-url "$RUN_URL")
|
||||
fi
|
||||
|
||||
python3 "${args[@]}"
|
||||
|
||||
if [[ "$PUBLISH" -eq 0 ]]; then
|
||||
echo "Dry-run release notes written to: $OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if gh release view "$release_tag" >/dev/null 2>&1; then
|
||||
edit_args=(release edit "$release_tag" --title "$release_tag" --notes-file "$OUTPUT")
|
||||
if [[ -n "$TARGET" ]]; then
|
||||
edit_args+=(--target "$TARGET")
|
||||
fi
|
||||
gh "${edit_args[@]}"
|
||||
else
|
||||
create_args=(release create "$release_tag" --title "$release_tag" --notes-file "$OUTPUT")
|
||||
if [[ -n "$TARGET" ]]; then
|
||||
create_args+=(--target "$TARGET")
|
||||
fi
|
||||
gh "${create_args[@]}"
|
||||
fi
|
||||
|
||||
echo "Published GitHub Release: $release_tag"
|
||||
Reference in New Issue
Block a user