Public Access
Stabilize self-hosted CI workflows and resolve issue #62 #73
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user