More CICD fixes again again again again again again again again again again again again again again again
All checks were successful
CICD Start / Sanity and Base Decision (pull_request) Successful in 1m3s

Signed-off-by: copilotcoder <copilotcoder@darkhelm.org>
This commit is contained in:
copilotcoder
2026-06-06 00:15:18 -04:00
parent 994aaf6bb0
commit 18ba115bb5
6 changed files with 122 additions and 5 deletions

View File

@@ -9,6 +9,9 @@ on:
source_workflow:
description: Upstream workflow name
required: false
trace_id:
description: Correlation id propagated across CICD dispatch chain
required: false
env:
GITEA_REGISTRY: kankali.darkhelm.lan:3001
@@ -34,7 +37,9 @@ jobs:
REF: ${{ github.ref }}
REF_NAME: ${{ github.ref_name }}
HEAD_REF: ${{ github.head_ref }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
TRACE_ID="${TRACE_ID_INPUT:-cicd-checks-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "=== Dispatch Audit: CICD Checks ==="
echo "event_name=${EVENT_NAME}"
echo "source_workflow=${SOURCE_WORKFLOW}"
@@ -42,6 +47,7 @@ jobs:
echo "ref=${REF}"
echo "ref_name=${REF_NAME}"
echo "head_ref=${HEAD_REF}"
echo "trace_id=${TRACE_ID}"
- name: Resolve head SHA
id: meta
@@ -130,6 +136,7 @@ jobs:
REPO_FULL: ${{ github.repository }}
HEAD_REF: ${{ github.head_ref }}
REF_NAME: ${{ github.ref_name }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
set -e
@@ -148,13 +155,19 @@ jobs:
REPO_OWNER="${REPO_FULL%/*}"
REPO_NAME="${REPO_FULL#*/}"
TARGET_REF="${HEAD_REF:-${REF_NAME}}"
TRACE_ID="${TRACE_ID_INPUT:-cicd-checks-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "trace_id=${TRACE_ID}"
echo "target_ref=${TARGET_REF}"
echo "dispatch_api_base=${API_BASE}"
payload=$(cat <<EOF
{
"ref": "${TARGET_REF}",
"inputs": {
"head_sha": "${HEAD_SHA}",
"source_workflow": "CICD Checks"
"source_workflow": "CICD Checks",
"trace_id": "${TRACE_ID}"
}
}
EOF
@@ -163,11 +176,17 @@ jobs:
DISPATCH_URL="${API_BASE}/repos/${REPO_OWNER}/${REPO_NAME}/actions/workflows/cicd-tests.yaml/dispatches"
RESPONSE_FILE="/tmp/dispatch-response.txt"
: > "${RESPONSE_FILE}"
dispatch_start_ms=$(date +%s%3N)
HTTP_CODE=$(curl -sS --connect-timeout 5 --max-time 20 -o "${RESPONSE_FILE}" -w "%{http_code}" -X POST \
-H "Authorization: token ${DISPATCH_TOKEN}" \
-H "Content-Type: application/json" \
"${DISPATCH_URL}" \
-d "${payload}" || true)
dispatch_end_ms=$(date +%s%3N)
dispatch_elapsed_ms=$((dispatch_end_ms - dispatch_start_ms))
echo "dispatch_elapsed_ms=${dispatch_elapsed_ms}"
echo "dispatch_http_code=${HTTP_CODE}"
if [ "${HTTP_CODE}" -lt 200 ] || [ "${HTTP_CODE}" -ge 300 ]; then
echo "❌ Dispatch failed with HTTP ${HTTP_CODE}"

View File

@@ -6,6 +6,10 @@ on:
pull_request:
branches: [ main, develop ]
workflow_dispatch:
inputs:
trace_id:
description: Correlation id propagated across CICD dispatch chain
required: false
env:
GITEA_SSH_HOST: kankali.darkhelm.lan
@@ -39,7 +43,9 @@ jobs:
REF_NAME: ${{ github.ref_name }}
HEAD_REF: ${{ github.head_ref }}
SHA: ${{ github.sha }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
TRACE_ID="${TRACE_ID_INPUT:-cicd-start-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${SHA:0:8}}"
echo "=== Dispatch Audit: CICD Start ==="
echo "event_name=${EVENT_NAME}"
echo "repository=${REPOSITORY}"
@@ -48,6 +54,7 @@ jobs:
echo "ref_name=${REF_NAME}"
echo "head_ref=${HEAD_REF}"
echo "sha=${SHA}"
echo "trace_id=${TRACE_ID}"
- name: Configure registry host resolution
run: |
@@ -80,6 +87,7 @@ jobs:
REPO_FULL: ${{ github.repository }}
HEAD_REF: ${{ github.head_ref }}
REF_NAME: ${{ github.ref_name }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
set -e
@@ -93,6 +101,10 @@ jobs:
REPO_OWNER="${REPO_FULL%/*}"
REPO_NAME="${REPO_FULL#*/}"
TARGET_REF="${HEAD_REF:-${REF_NAME}}"
TRACE_ID="${TRACE_ID_INPUT:-cicd-start-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "trace_id=${TRACE_ID}"
echo "target_ref=${TARGET_REF}"
if [ "${BASE_NEEDED}" = "true" ]; then
TARGET_WORKFLOW="docker-build-base.yaml"
@@ -107,7 +119,8 @@ jobs:
"head_sha": "${HEAD_SHA}",
"base_hash": "${BASE_HASH}",
"source_workflow": "CICD Start",
"base_needed": "${BASE_NEEDED}"
"base_needed": "${BASE_NEEDED}",
"trace_id": "${TRACE_ID}"
}
}
EOF
@@ -149,18 +162,28 @@ jobs:
ensure_curl
dispatched=false
total_attempts=${#CANDIDATE_API_BASES[@]}
attempt=0
for API_BASE in "${CANDIDATE_API_BASES[@]}"; do
attempt=$((attempt + 1))
DISPATCH_URL="${API_BASE}/repos/${REPO_OWNER}/${REPO_NAME}/actions/workflows/${TARGET_WORKFLOW}/dispatches"
echo "dispatch_attempt=${attempt}/${total_attempts}"
echo "dispatch_api_base=${API_BASE}"
RESPONSE_FILE="/tmp/dispatch-response.txt"
: > "${RESPONSE_FILE}"
dispatch_start_ms=$(date +%s%3N)
HTTP_CODE=$(curl -sS --connect-timeout 5 --max-time 20 -o "${RESPONSE_FILE}" -w "%{http_code}" -X POST \
-H "Authorization: token ${DISPATCH_TOKEN}" \
-H "Content-Type: application/json" \
-H "User-Agent: plex-playlist-cicd-start" \
"${DISPATCH_URL}" \
-d "${payload}" || true)
dispatch_end_ms=$(date +%s%3N)
dispatch_elapsed_ms=$((dispatch_end_ms - dispatch_start_ms))
echo "dispatch_elapsed_ms=${dispatch_elapsed_ms}"
echo "dispatch_http_code=${HTTP_CODE}"
if [[ "${HTTP_CODE}" =~ ^[0-9]+$ ]] && [ "${HTTP_CODE}" -ge 200 ] && [ "${HTTP_CODE}" -lt 300 ]; then
echo "✓ Dispatch succeeded via ${API_BASE}"

View File

@@ -9,6 +9,9 @@ on:
source_workflow:
description: Upstream workflow name
required: false
trace_id:
description: Correlation id propagated across CICD dispatch chain
required: false
env:
GITEA_REGISTRY: kankali.darkhelm.lan:3001
@@ -34,7 +37,9 @@ jobs:
REF: ${{ github.ref }}
REF_NAME: ${{ github.ref_name }}
HEAD_REF: ${{ github.head_ref }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
TRACE_ID="${TRACE_ID_INPUT:-cicd-tests-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "=== Dispatch Audit: CICD Tests ==="
echo "event_name=${EVENT_NAME}"
echo "source_workflow=${SOURCE_WORKFLOW}"
@@ -42,6 +47,7 @@ jobs:
echo "ref=${REF}"
echo "ref_name=${REF_NAME}"
echo "head_ref=${HEAD_REF}"
echo "trace_id=${TRACE_ID}"
- name: Resolve head SHA
id: meta

View File

@@ -49,13 +49,19 @@ jobs:
REPO_OWNER="${REPO_FULL%/*}"
REPO_NAME="${REPO_FULL#*/}"
TARGET_REF="${HEAD_REF:-${REF_NAME}}"
TRACE_ID="cicd-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}"
echo "trace_id=${TRACE_ID}"
echo "target_ref=${TARGET_REF}"
echo "api_base=${API_BASE}"
payload=$(cat <<EOF
{
"ref": "${TARGET_REF}",
"inputs": {
"head_sha": "${HEAD_SHA}",
"source_workflow": "CICD"
"source_workflow": "CICD",
"trace_id": "${TRACE_ID}"
}
}
EOF
@@ -64,11 +70,17 @@ jobs:
DISPATCH_URL="${API_BASE}/repos/${REPO_OWNER}/${REPO_NAME}/actions/workflows/cicd-start.yaml/dispatches"
RESPONSE_FILE="/tmp/dispatch-response.txt"
: > "${RESPONSE_FILE}"
dispatch_start_ms=$(date +%s%3N)
HTTP_CODE=$(curl -sS --connect-timeout 5 --max-time 20 -o "${RESPONSE_FILE}" -w "%{http_code}" -X POST \
-H "Authorization: token ${DISPATCH_TOKEN}" \
-H "Content-Type: application/json" \
"${DISPATCH_URL}" \
-d "${payload}" || true)
dispatch_end_ms=$(date +%s%3N)
dispatch_elapsed_ms=$((dispatch_end_ms - dispatch_start_ms))
echo "dispatch_elapsed_ms=${dispatch_elapsed_ms}"
echo "dispatch_http_code=${HTTP_CODE}"
if [ "${HTTP_CODE}" -lt 200 ] || [ "${HTTP_CODE}" -ge 300 ]; then
echo "❌ Dispatch failed with HTTP ${HTTP_CODE}"

View File

@@ -13,6 +13,9 @@ on:
source_workflow:
description: Upstream workflow name
required: false
trace_id:
description: Correlation id propagated across CICD dispatch chain
required: false
concurrency:
group: base-${{ github.sha }}
@@ -36,6 +39,28 @@ jobs:
head_sha: ${{ steps.meta.outputs.head_sha }}
steps:
- name: Audit trigger context
env:
EVENT_NAME: ${{ github.event_name }}
SOURCE_WORKFLOW: ${{ github.event.inputs.source_workflow }}
FORCE_REBUILD: ${{ github.event.inputs.force_rebuild }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
HEAD_SHA: ${{ github.sha }}
REF: ${{ github.ref }}
REF_NAME: ${{ github.ref_name }}
HEAD_REF: ${{ github.head_ref }}
run: |
TRACE_ID="${TRACE_ID_INPUT:-cicd-base-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "=== Dispatch Audit: CICD Base Image ==="
echo "event_name=${EVENT_NAME}"
echo "source_workflow=${SOURCE_WORKFLOW}"
echo "force_rebuild=${FORCE_REBUILD}"
echo "head_sha=${HEAD_SHA}"
echo "ref=${REF}"
echo "ref_name=${REF_NAME}"
echo "head_ref=${HEAD_REF}"
echo "trace_id=${TRACE_ID}"
- name: Resolve head SHA
id: meta
env:
@@ -290,6 +315,7 @@ jobs:
REPO_FULL: ${{ github.repository }}
HEAD_REF: ${{ github.head_ref }}
REF_NAME: ${{ github.ref_name }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
set -e
@@ -308,6 +334,11 @@ jobs:
REPO_OWNER="${REPO_FULL%/*}"
REPO_NAME="${REPO_FULL#*/}"
TARGET_REF="${HEAD_REF:-${REF_NAME}}"
TRACE_ID="${TRACE_ID_INPUT:-cicd-base-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "trace_id=${TRACE_ID}"
echo "target_ref=${TARGET_REF}"
echo "dispatch_api_base=${API_BASE}"
if ! command -v curl >/dev/null 2>&1; then
export DEBIAN_FRONTEND=noninteractive
@@ -322,7 +353,8 @@ jobs:
"head_sha": "${HEAD_SHA}",
"base_hash": "${BASE_HASH}",
"source_workflow": "CICD Base Image",
"base_needed": "true"
"base_needed": "true",
"trace_id": "${TRACE_ID}"
}
}
EOF
@@ -331,11 +363,17 @@ jobs:
DISPATCH_URL="${API_BASE}/repos/${REPO_OWNER}/${REPO_NAME}/actions/workflows/docker-build-main.yaml/dispatches"
RESPONSE_FILE="/tmp/dispatch-response.txt"
: > "${RESPONSE_FILE}"
dispatch_start_ms=$(date +%s%3N)
HTTP_CODE=$(curl -sS --connect-timeout 5 --max-time 20 -o "${RESPONSE_FILE}" -w "%{http_code}" -X POST \
-H "Authorization: token ${DISPATCH_TOKEN}" \
-H "Content-Type: application/json" \
"${DISPATCH_URL}" \
-d "${payload}" || true)
dispatch_end_ms=$(date +%s%3N)
dispatch_elapsed_ms=$((dispatch_end_ms - dispatch_start_ms))
echo "dispatch_elapsed_ms=${dispatch_elapsed_ms}"
echo "dispatch_http_code=${HTTP_CODE}"
if ! [[ "${HTTP_CODE}" =~ ^[0-9]+$ ]] || [ "${HTTP_CODE}" -lt 200 ] || [ "${HTTP_CODE}" -ge 300 ]; then
echo "❌ Dispatch failed with HTTP ${HTTP_CODE}"

View File

@@ -15,6 +15,9 @@ on:
base_needed:
description: Whether base rebuild was required
required: false
trace_id:
description: Correlation id propagated across CICD dispatch chain
required: false
env:
GITEA_SSH_HOST: kankali.darkhelm.lan
@@ -47,7 +50,9 @@ jobs:
REF: ${{ github.ref }}
REF_NAME: ${{ github.ref_name }}
HEAD_REF: ${{ github.head_ref }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
TRACE_ID="${TRACE_ID_INPUT:-cicd-main-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "=== Dispatch Audit: CICD Main Build ==="
echo "event_name=${EVENT_NAME}"
echo "source_workflow=${SOURCE_WORKFLOW}"
@@ -57,6 +62,7 @@ jobs:
echo "ref=${REF}"
echo "ref_name=${REF_NAME}"
echo "head_ref=${HEAD_REF}"
echo "trace_id=${TRACE_ID}"
- name: Resolve head SHA
id: meta
@@ -188,6 +194,7 @@ jobs:
REPO_FULL: ${{ github.repository }}
HEAD_REF: ${{ github.head_ref }}
REF_NAME: ${{ github.ref_name }}
TRACE_ID_INPUT: ${{ github.event.inputs.trace_id }}
run: |
set -e
@@ -206,13 +213,19 @@ jobs:
REPO_OWNER="${REPO_FULL%/*}"
REPO_NAME="${REPO_FULL#*/}"
TARGET_REF="${HEAD_REF:-${REF_NAME}}"
TRACE_ID="${TRACE_ID_INPUT:-cicd-main-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${HEAD_SHA:0:8}}"
echo "trace_id=${TRACE_ID}"
echo "target_ref=${TARGET_REF}"
echo "dispatch_api_base=${API_BASE}"
payload=$(cat <<EOF
{
"ref": "${TARGET_REF}",
"inputs": {
"head_sha": "${HEAD_SHA}",
"source_workflow": "CICD Main Build"
"source_workflow": "CICD Main Build",
"trace_id": "${TRACE_ID}"
}
}
EOF
@@ -221,11 +234,17 @@ jobs:
DISPATCH_URL="${API_BASE}/repos/${REPO_OWNER}/${REPO_NAME}/actions/workflows/cicd-checks.yaml/dispatches"
RESPONSE_FILE="/tmp/dispatch-response.txt"
: > "${RESPONSE_FILE}"
dispatch_start_ms=$(date +%s%3N)
HTTP_CODE=$(curl -sS --connect-timeout 5 --max-time 20 -o "${RESPONSE_FILE}" -w "%{http_code}" -X POST \
-H "Authorization: token ${DISPATCH_TOKEN}" \
-H "Content-Type: application/json" \
"${DISPATCH_URL}" \
-d "${payload}" || true)
dispatch_end_ms=$(date +%s%3N)
dispatch_elapsed_ms=$((dispatch_end_ms - dispatch_start_ms))
echo "dispatch_elapsed_ms=${dispatch_elapsed_ms}"
echo "dispatch_http_code=${HTTP_CODE}"
if [ "${HTTP_CODE}" -lt 200 ] || [ "${HTTP_CODE}" -ge 300 ]; then
echo "❌ Dispatch failed with HTTP ${HTTP_CODE}"