#!/bin/bash # Check for new bootc releases on GitHub # Outputs release.env file with NEW_RELEASE, VERSION, and RELEASE_TAG variables set -euo pipefail readonly GITHUB_API="https://api.github.com/repos/containers/bootc/releases/latest" readonly SPEC_FILE="bootc.spec" log_info() { echo "[INFO] $*" } log_error() { echo "[ERROR] $*" >&2 } # Fetch latest release from GitHub log_info "Fetching latest release from GitHub..." LATEST_RELEASE=$(curl -sL "$GITHUB_API" | jq -r '.tag_name') if [[ -z "$LATEST_RELEASE" ]] || [[ "$LATEST_RELEASE" == "null" ]]; then log_error "Failed to fetch latest release from GitHub" exit 1 fi # Strip 'v' prefix from tag (e.g., v1.5.2 -> 1.5.2) LATEST_VERSION="${LATEST_RELEASE#v}" log_info "Latest upstream release: $LATEST_VERSION ($LATEST_RELEASE)" # Get current version from spec file if [[ ! -f "$SPEC_FILE" ]]; then log_error "Spec file not found: $SPEC_FILE" exit 1 fi CURRENT_VERSION=$(rpmspec -q --queryformat='%{version}\n' "$SPEC_FILE" 2>/dev/null | head -1) if [[ -z "$CURRENT_VERSION" ]]; then log_error "Failed to parse version from spec file" exit 1 fi log_info "Current spec version: $CURRENT_VERSION" # Compare versions if [[ "$LATEST_VERSION" != "$CURRENT_VERSION" ]]; then log_info "New release detected: $CURRENT_VERSION -> $LATEST_VERSION" cat > release.env < release.env <