3 Commits

Author SHA1 Message Date
copilotcoder
f037e7138d docs(dev): document Renovate manual dispatch behavior
All checks were successful
CICD / Build and Push CICD Images (push) Successful in 9m42s
CICD / Build CICD Image Failure Postmortem (push) Has been skipped
CICD / Source Checks (push) Successful in 2m19s
CICD / Source Lanes Failure Postmortem (push) Has been skipped
CICD / Build Release Images (push) Successful in 9m52s
CICD / Build Tester Images (push) Successful in 12m17s
CICD / Production Image Failures Postmortem (push) Has been skipped
CICD / Production Images Complete (push) Successful in 3s
CICD / Runtime Black-Box Integration Tests (push) Successful in 1m19s
CICD / Integration Tests Failure Postmortem (push) Has been skipped
CICD / End-to-End Tests (push) Successful in 2m12s
CICD / E2E Tests Failure Postmortem (push) Has been skipped
CICD / Promote Staging Images To Release (push) Successful in 42s
CICD / Dependency Audits (Informational) (push) Successful in 18m45s
CICD / CICD Tests Complete (push) Successful in 4s
2026-07-21 15:04:09 -04:00
copilotcoder
93b4000b20 ci(renovate): run manual dispatch outside schedule in single pass
Some checks failed
CICD / Build CICD Image Failure Postmortem (push) Has been cancelled
CICD / Source Checks (push) Has been cancelled
CICD / Dependency Audits (Informational) (push) Has been cancelled
CICD / CICD Tests Complete (push) Has been cancelled
CICD / Build Release Images (push) Has been cancelled
CICD / Build Tester Images (push) Has been cancelled
CICD / Production Images Complete (push) Has been cancelled
CICD / Production Image Failures Postmortem (push) Has been cancelled
CICD / Source Lanes Failure Postmortem (push) Has been cancelled
CICD / Runtime Black-Box Integration Tests (push) Has been cancelled
CICD / Integration Tests Failure Postmortem (push) Has been cancelled
CICD / End-to-End Tests (push) Has been cancelled
CICD / Build and Push CICD Images (push) Has been cancelled
CICD / E2E Tests Failure Postmortem (push) Has been cancelled
CICD / Promote Staging Images To Release (push) Has been cancelled
2026-07-21 14:24:45 -04:00
copilotcoder
996a018dad Working on debugging renovate, set log level back to debug.
Some checks failed
CICD / Build CICD Image Failure Postmortem (push) Has been cancelled
CICD / Source Checks (push) Has been cancelled
CICD / Dependency Audits (Informational) (push) Has been cancelled
CICD / Build and Push CICD Images (push) Has been cancelled
CICD / CICD Tests Complete (push) Has been cancelled
CICD / Build Release Images (push) Has been cancelled
CICD / Build Tester Images (push) Has been cancelled
CICD / Production Images Complete (push) Has been cancelled
CICD / Production Image Failures Postmortem (push) Has been cancelled
CICD / Source Lanes Failure Postmortem (push) Has been cancelled
CICD / Runtime Black-Box Integration Tests (push) Has been cancelled
CICD / Integration Tests Failure Postmortem (push) Has been cancelled
CICD / End-to-End Tests (push) Has been cancelled
CICD / E2E Tests Failure Postmortem (push) Has been cancelled
CICD / Promote Staging Images To Release (push) Has been cancelled
Signed-off-by: copilotcoder <copilotcoder@darkhelm.org>
2026-07-21 13:46:45 -04:00
2 changed files with 32 additions and 28 deletions

View File

@@ -180,7 +180,7 @@ jobs:
RENOVATE_NODE_ARGS: --max-old-space-size=768
RENOVATE_OSV_VULNERABILITY_ALERTS: "false"
RENOVATE_FETCH_CHANGELOGS: "off"
LOG_LEVEL: info
LOG_LEVEL: debug
run: |
set -euo pipefail
@@ -401,9 +401,11 @@ jobs:
# Manual workflow dispatch should execute immediately, regardless of repository schedule windows.
if [ "${GITHUB_EVENT_NAME:-}" = "workflow_dispatch" ]; then
export RENOVATE_IGNORE_SCHEDULE="true"
echo "✓ Manual run detected: ignoring Renovate schedule constraints"
export RENOVATE_SCHEDULE="at any time"
echo "✓ Manual run detected: forcing Renovate outside schedule windows"
else
unset RENOVATE_IGNORE_SCHEDULE
unset RENOVATE_SCHEDULE
fi
# Multi-batch runs must not prune branches created by earlier batches.
@@ -412,22 +414,16 @@ jobs:
run_renovate_with_endpoint() {
endpoint="$1"
enabled_managers="$2"
batch_label="$3"
batch_node_args="${RENOVATE_NODE_ARGS}"
batch_pr_limit="${RENOVATE_PR_CONCURRENT_LIMIT}"
batch_branch_limit="${RENOVATE_BRANCH_CONCURRENT_LIMIT}"
if [ "${batch_label}" = "npm" ]; then
batch_node_args="--max-old-space-size=1536"
batch_pr_limit="1"
batch_branch_limit="1"
fi
single_pass_node_args="${RENOVATE_NODE_ARGS}"
single_pass_pr_limit="${RENOVATE_PR_CONCURRENT_LIMIT}"
single_pass_branch_limit="${RENOVATE_BRANCH_CONCURRENT_LIMIT}"
export RENOVATE_ENDPOINT="${endpoint}"
echo "Running Renovate batch '${batch_label}' with endpoint: ${RENOVATE_ENDPOINT}"
echo "Enabled managers for '${batch_label}': ${enabled_managers}"
echo "Node args for '${batch_label}': ${batch_node_args}"
echo "PR/branch limits for '${batch_label}': ${batch_pr_limit}/${batch_branch_limit}"
echo "Running Renovate single pass with endpoint: ${RENOVATE_ENDPOINT}"
echo "Enabled managers: ${enabled_managers}"
echo "Node args: ${single_pass_node_args}"
echo "PR/branch limits: ${single_pass_pr_limit}/${single_pass_branch_limit}"
# shellcheck disable=SC2086
docker run --rm ${DOCKER_ADD_HOST_ARG} \
@@ -448,12 +444,13 @@ jobs:
-e RENOVATE_GIT_AUTHOR \
-e RENOVATE_ONBOARDING \
-e RENOVATE_REQUIRE_CONFIG \
-e RENOVATE_PR_CONCURRENT_LIMIT="${batch_pr_limit}" \
-e RENOVATE_BRANCH_CONCURRENT_LIMIT="${batch_branch_limit}" \
-e RENOVATE_NODE_ARGS="${batch_node_args}" \
-e RENOVATE_PR_CONCURRENT_LIMIT="${single_pass_pr_limit}" \
-e RENOVATE_BRANCH_CONCURRENT_LIMIT="${single_pass_branch_limit}" \
-e RENOVATE_NODE_ARGS="${single_pass_node_args}" \
-e RENOVATE_OSV_VULNERABILITY_ALERTS \
-e RENOVATE_FETCH_CHANGELOGS \
-e RENOVATE_IGNORE_SCHEDULE \
-e RENOVATE_SCHEDULE \
-e RENOVATE_PRUNE_STALE_BRANCHES \
-e RENOVATE_ENABLED_MANAGERS="${enabled_managers}" \
--entrypoint /bin/sh \
@@ -469,30 +466,27 @@ jobs:
renovate --platform "${RENOVATE_PLATFORM}" --endpoint "${RENOVATE_ENDPOINT}" --git-url "${RENOVATE_GIT_URL}" --git-author "${RENOVATE_GIT_AUTHOR}" --onboarding="${RENOVATE_ONBOARDING}" --pr-concurrent-limit "${RENOVATE_PR_CONCURRENT_LIMIT}" --branch-concurrent-limit "${RENOVATE_BRANCH_CONCURRENT_LIMIT}" --osv-vulnerability-alerts="${RENOVATE_OSV_VULNERABILITY_ALERTS}" --enabled-managers "${RENOVATE_ENABLED_MANAGERS}" DarkHelm.org/plex-playlist'
}
run_batch_with_fallback() {
run_single_pass_with_fallback() {
enabled_managers="$1"
batch_label="$2"
if run_renovate_with_endpoint "${BASE_ENDPOINT}" "${enabled_managers}" "${batch_label}" 2>&1 | tee -a /tmp/renovate.log; then
if run_renovate_with_endpoint "${BASE_ENDPOINT}" "${enabled_managers}" 2>&1 | tee -a /tmp/renovate.log; then
return 0
fi
primary_status=$?
if [ "${primary_status}" -eq 137 ] || tail -n 400 /tmp/renovate.log | grep -qE '(^|[[:space:]])Killed($|[[:space:]])|exitcode '\''137'\''' ; then
echo "❌ Renovate batch '${batch_label}' terminated by OOM/kill signal on primary endpoint; skipping endpoint retry"
echo "❌ Renovate single pass terminated by OOM/kill signal on primary endpoint; skipping endpoint retry"
return "${primary_status}"
fi
echo "⚠ Renovate batch '${batch_label}' failed with primary endpoint. Retrying with API endpoint form..."
run_renovate_with_endpoint "${API_ENDPOINT}" "${enabled_managers}" "${batch_label}" 2>&1 | tee -a /tmp/renovate.log
echo "⚠ Renovate single pass failed with primary endpoint. Retrying with API endpoint form..."
run_renovate_with_endpoint "${API_ENDPOINT}" "${enabled_managers}" 2>&1 | tee -a /tmp/renovate.log
}
: > /tmp/renovate.log
# Run low-memory batches sequentially to keep peak usage below constrained runner limits.
run_batch_with_fallback "docker-compose,dockerfile" "containers"
run_batch_with_fallback "github-actions,pep621" "python-and-actions"
run_batch_with_fallback "npm" "npm"
# Run Renovate once across all enabled managers.
run_single_pass_with_fallback "docker-compose,dockerfile,github-actions,npm,pep621"
echo "✓ Renovate execution completed"

View File

@@ -433,6 +433,16 @@ Current workflow behavior includes:
For details of base/complete image build strategy, see [CI/CD Multi-Stage Build Architecture](CICD_MULTI_STAGE_BUILD.md).
For incident handling, see [CI/CD Troubleshooting](CICD_TROUBLESHOOTING_GUIDE.md).
### Renovate Manual Run Behavior
The Renovate workflow at `.gitea/workflows/renovate.yml` now treats manual dispatch as an explicit operator override:
- when triggered via `workflow_dispatch`, it forces out-of-window execution by setting `RENOVATE_IGNORE_SCHEDULE=true`
- it also sets `RENOVATE_SCHEDULE="at any time"` for the run
- it executes one single pass across enabled managers instead of splitting work into multiple manager batches
This keeps scheduled behavior unchanged while making manual runs deterministic and immediate.
### Operator Quick Reference
Use workflow dispatch when you need deterministic reruns on a specific commit: