51 lines
1.2 KiB
Bash
Executable File
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'
|