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
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:
@@ -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}"
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user