Files
computer-playbook/scripts/github/resolve/pick_distro.sh
T
kevinveenbirkenbachandClaude Opus 4.7 f9147e4486 refactor(scripts/github): split helpers into responsibility subfolders
Group the shell helpers under scripts/github/ into five subfolders
that match how the workflow files consume them:

  runner/   host-runner hygiene (disk, swap, Docker daemon, diagnostics)
  cancel/   run cancellation on PR-close and branch-delete events
  resolve/  derivation of workflow inputs and outputs from repo state
  update/   scheduled Update: Versions pipeline
  release/  release-time gates

Drop the now-redundant subfolder prefix from each filename, e.g.
dump_runner_state.sh becomes dump_state.sh and cancel_pull_request_runs.sh
becomes pull_request_runs.sh. Each subfolder carries a README that
describes its scope per documentation.md rules; the top-level README
points at the subfolders without inventorying files.

Propagate the new paths through ten workflow files, three docs
(workflow.md, pipeline.md, secrets.md), and two tests. Fix a real
runtime bug in enlarge_swap.sh, which still referenced the
pre-rename dump_runner_state.sh path. Extend the inline-block-size
lint hint to describe the new subfolder convention.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 00:50:26 +02:00

38 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Decide which distros the latest-push CI run should cover. If the
# pushed commit carries a `vX.Y.Z` annotated tag, run every distro in
# `ALL_DISTROS`; otherwise pick one at random. Emits both
# `is_version` and `distros` to GITHUB_OUTPUT.
#
# Usage:
# pick_distro.sh
# (reads GITHUB_SHA from env; writes to GITHUB_OUTPUT)
set -euo pipefail
ALL_DISTROS=(arch debian ubuntu fedora centos)
version_tag="$(
git tag --points-at "${GITHUB_SHA}" |
grep -E '^v[0-9]+(\.[0-9]+)*$' |
head -n 1 || true
)"
if [[ -n "$version_tag" ]]; then
echo "is_version=true" >>"$GITHUB_OUTPUT"
echo "version_tag=${version_tag}" >>"$GITHUB_OUTPUT"
distros="${ALL_DISTROS[*]}"
echo "🎯 Commit ${GITHUB_SHA} has version tag ${version_tag} → running ALL distros"
else
echo "is_version=false" >>"$GITHUB_OUTPUT"
echo "version_tag=" >>"$GITHUB_OUTPUT"
one="$(printf '%s\n' "${ALL_DISTROS[@]}" | shuf -n 1)"
distros="$one"
echo "🎲 No version tag on commit → picked distro: ${one}"
fi
echo "distros=${distros}" >>"$GITHUB_OUTPUT"
echo "=== Selected distros: ${distros} ==="
echo "=== is_version: $(grep -E '^is_version=' "$GITHUB_OUTPUT" | tail -n 1) ==="
echo "=== version_tag: $(grep -E '^version_tag=' "$GITHUB_OUTPUT" | tail -n 1) ==="