Stabilize self-hosted CI workflows and resolve issue #62 #73

Merged
darkhelm merged 80 commits from feature/two-stage-runtime-images into main 2026-07-13 11:16:18 -04:00
Showing only changes of commit 7a3b6f5781 - Show all commits
+59
View File
@@ -27,6 +27,8 @@ env:
GITEA_REGISTRY: kankali.darkhelm.lan:3001
GITEA_REGISTRY_IP: 10.18.75.2
GITEA_REGISTRY_HOST: kankali.darkhelm.lan
CI_PRUNE_AT_JOB_START: "true"
CI_PRUNE_THRESHOLD_PERCENT: "90"
defaults:
run:
@@ -57,6 +59,27 @@ jobs:
echo "runner_arch=${RUNNER_ARCH:-unknown}"
echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
- name: Pre-job Docker prune
run: |
if [ "${CI_PRUNE_AT_JOB_START:-false}" != "true" ] || ! command -v docker >/dev/null 2>&1; then
echo "Skipping pre-job prune"
exit 0
fi
used_before="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
threshold="${CI_PRUNE_THRESHOLD_PERCENT:-90}"
echo "disk_used_before=${used_before}%"
echo "prune_threshold=${threshold}%"
if [ -n "${used_before}" ] && [ "${used_before}" -ge "${threshold}" ]; then
docker builder prune -af || true
docker system prune -af --volumes || true
used_after="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
echo "disk_used_after=${used_after}%"
else
echo "Skipping prune; usage below threshold"
fi
- name: Resolve head SHA
id: meta
env:
@@ -272,6 +295,27 @@ jobs:
run: |
echo "head_sha=${{ needs['publish-base'].outputs.head_sha }}" >> "$GITHUB_OUTPUT"
- name: Pre-job Docker prune
run: |
if [ "${CI_PRUNE_AT_JOB_START:-false}" != "true" ] || ! command -v docker >/dev/null 2>&1; then
echo "Skipping pre-job prune"
exit 0
fi
used_before="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
threshold="${CI_PRUNE_THRESHOLD_PERCENT:-90}"
echo "disk_used_before=${used_before}%"
echo "prune_threshold=${threshold}%"
if [ -n "${used_before}" ] && [ "${used_before}" -ge "${threshold}" ]; then
docker builder prune -af || true
docker system prune -af --volumes || true
used_after="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
echo "disk_used_after=${used_after}%"
else
echo "Skipping prune; usage below threshold"
fi
- name: Minimal checkout for CICD build inputs
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
@@ -489,6 +533,21 @@ jobs:
- &configure_registry_host_step
name: Configure registry host resolution
run: |
if [ "${CI_PRUNE_AT_JOB_START:-false}" = "true" ] && command -v docker >/dev/null 2>&1; then
used_before="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
threshold="${CI_PRUNE_THRESHOLD_PERCENT:-90}"
echo "disk_used_before=${used_before}%"
echo "prune_threshold=${threshold}%"
if [ -n "${used_before}" ] && [ "${used_before}" -ge "${threshold}" ]; then
docker builder prune -af || true
docker system prune -af --volumes || true
used_after="$(df -P / | awk 'NR==2 {gsub(/%/, "", $5); print $5}')"
echo "disk_used_after=${used_after}%"
else
echo "Skipping prune; usage below threshold"
fi
fi
if ! grep -q "${GITEA_REGISTRY_HOST}" /etc/hosts; then
echo "${GITEA_REGISTRY_IP} ${GITEA_REGISTRY_HOST}" >> /etc/hosts
fi