#!/usr/bin/env bash # Print the CI build matrix (JSON) for the images affected by the paths on # stdin (one per line). Any change to shared files or the build tooling # rebuilds every image. Empty input (e.g. schedule/manual runs) rebuilds all. set -euo pipefail changed="$(cat || true)" all=0 [[ -z "${changed}" ]] && all=1 grep -qE '^(build\.sh|release\.sh|prune-releases\.sh|prune-registry\.sh|ci-matrix\.sh|\.gitea/)' <<< "${changed}" && all=1 grep -qE '^images/shared/' <<< "${changed}" && all=1 cosmic=0 remote=0 if [[ "${all}" == 1 ]]; then cosmic=1 remote=1 fi grep -qE '^images/fedora-cosmic/' <<< "${changed}" && cosmic=1 grep -qE '^images/fedora-remote/' <<< "${changed}" && remote=1 entries=() if [[ "${cosmic}" == 1 ]]; then entries+=('{"image":"fedora-cosmic","distro":"44","arch":"x86_64","runner":"job-v2"}') entries+=('{"image":"fedora-cosmic","distro":"rawhide","arch":"x86_64","runner":"job-v2"}') fi if [[ "${remote}" == 1 ]]; then entries+=('{"image":"fedora-remote","distro":"44","arch":"x86_64","runner":"job-v2"}') fi joined="$(IFS=,; printf '%s' "${entries[*]:-}")" printf '{"include":[%s]}\n' "${joined}"