my-homelab-configs/scripts/classify-gitea-action

51 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
base_ref="${1:-}"
if [[ -z "${base_ref}" ]]; then
base_ref="$(
python3 - <<'PY'
import json
import os
path = os.environ.get("GITHUB_EVENT_PATH", "")
if path and os.path.exists(path):
with open(path, encoding="utf-8") as handle:
print(json.load(handle).get("before", ""))
PY
)"
fi
if [[ -z "${base_ref}" || "${base_ref}" =~ ^0+$ ]]; then
base_ref="$(git rev-parse HEAD^ 2>/dev/null || git hash-object -t tree /dev/null)"
fi
changed_files="$(git diff --name-only "${base_ref}" HEAD)"
mode="k8s-update"
while IFS= read -r path; do
[[ -n "${path}" ]] || continue
case "${path}" in
.gitea/workflows/* | \
bootstrap/apps/* | \
bootstrap/cluster/* | \
bootstrap/edge/* | \
bootstrap/host/* | \
bootstrap/platform/* | \
bootstrap/provisioning/* | \
homelab.yml | \
infra/gitea/* | \
jeannie | \
lib/jeannie/* | \
scripts/*)
mode="debian-ops"
break
;;
esac
done <<<"${changed_files}"
printf 'mode=%s\n' "${mode}"
printf 'base_ref=%s\n' "${base_ref}"
printf '%s\n' "${changed_files}" | sed '/^$/d'