diff --git a/.gitea/workflows/cicd-checks.yaml b/.gitea/workflows/cicd-checks.yaml index 1054407..bfa5e26 100644 --- a/.gitea/workflows/cicd-checks.yaml +++ b/.gitea/workflows/cicd-checks.yaml @@ -34,7 +34,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -73,13 +77,12 @@ jobs: run-check: name: ${{ matrix.name }} - # Docker-capable 8GB runner required for stable container startup. - runs-on: ubuntu-act-8gb + # Run checks across the full act runner pool for maximum parallelism. + runs-on: ubuntu-act timeout-minutes: 20 needs: setup strategy: fail-fast: false - max-parallel: 3 matrix: include: - name: Trailing Whitespace Check @@ -116,7 +119,11 @@ jobs: - name: Runner assignment audit run: | echo "=== Runner Assignment Audit ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" diff --git a/.gitea/workflows/cicd-start.yaml b/.gitea/workflows/cicd-start.yaml index 569ee7e..11775c6 100644 --- a/.gitea/workflows/cicd-start.yaml +++ b/.gitea/workflows/cicd-start.yaml @@ -38,7 +38,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" diff --git a/.gitea/workflows/cicd-tests.yaml b/.gitea/workflows/cicd-tests.yaml index 2076a41..aa3b90c 100644 --- a/.gitea/workflows/cicd-tests.yaml +++ b/.gitea/workflows/cicd-tests.yaml @@ -34,7 +34,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -81,7 +85,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -143,7 +151,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -169,7 +181,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -196,7 +212,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -227,7 +247,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" diff --git a/.gitea/workflows/docker-build-base.yaml b/.gitea/workflows/docker-build-base.yaml index 88fa5d7..c632a02 100644 --- a/.gitea/workflows/docker-build-base.yaml +++ b/.gitea/workflows/docker-build-base.yaml @@ -44,7 +44,11 @@ jobs: shell: sh run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -109,7 +113,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" diff --git a/.gitea/workflows/docker-build-main.yaml b/.gitea/workflows/docker-build-main.yaml index 5d83e4c..7236c73 100644 --- a/.gitea/workflows/docker-build-main.yaml +++ b/.gitea/workflows/docker-build-main.yaml @@ -46,7 +46,11 @@ jobs: shell: sh run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" @@ -112,7 +116,11 @@ jobs: - name: Identify runner run: | echo "=== Runner Identity ===" - echo "runner_name=${RUNNER_NAME:-unknown}" + echo "runner_name=${RUNNER_NAME:-}" + echo "runner_name_hint=${GITEA_RUNNER_NAME:-${ACT_RUNNER_NAME:-${RUNNER_NAME:-unknown}}}" + echo "runner_hostname_env=${HOSTNAME:-unknown}" + echo "runner_uname_n=$(uname -n 2>/dev/null || echo unknown)" + echo "runner_etc_hostname=$(cat /etc/hostname 2>/dev/null || echo unknown)" echo "runner_os=${RUNNER_OS:-unknown}" echo "runner_arch=${RUNNER_ARCH:-unknown}" echo "timestamp_utc=$(date -u +%Y-%m-%dT%H:%M:%SZ)" diff --git a/Dockerfile.cicd b/Dockerfile.cicd index 35c73d3..f64e580 100644 --- a/Dockerfile.cicd +++ b/Dockerfile.cicd @@ -12,6 +12,7 @@ FROM ${CICD_BASE_IMAGE} # Build args for cache busting ARG GITHUB_SHA ENV GITHUB_SHA=${GITHUB_SHA} +LABEL org.opencontainers.image.revision=${GITHUB_SHA} # Accept build arguments for Git checkout (no secrets here!) ARG GITHUB_SHA @@ -37,8 +38,17 @@ RUN --mount=type=secret,id=ssh_private_key \ ssh://git@kankali.darkhelm.lan:2222/DarkHelm.org/plex-playlist.git /tmp/repo && \ if [ -n "$GITHUB_SHA" ]; then \ cd /tmp/repo && \ - GIT_SSH_COMMAND="ssh -F ~/.ssh/config" git fetch --depth 1 origin "$GITHUB_SHA" 2>/dev/null || true && \ - git checkout "$GITHUB_SHA" 2>/dev/null || echo "Using main branch HEAD"; \ + if GIT_SSH_COMMAND="ssh -F ~/.ssh/config" git fetch --depth 1 origin "$GITHUB_SHA" >/tmp/git-fetch-sha.log 2>&1 && \ + git checkout "$GITHUB_SHA" >/tmp/git-checkout-sha.log 2>&1; then \ + echo "✓ Checked out requested GITHUB_SHA: $GITHUB_SHA"; \ + else \ + echo "❌ Failed to checkout requested GITHUB_SHA: $GITHUB_SHA"; \ + echo "--- git fetch output ---"; \ + cat /tmp/git-fetch-sha.log 2>/dev/null || true; \ + echo "--- git checkout output ---"; \ + cat /tmp/git-checkout-sha.log 2>/dev/null || true; \ + exit 1; \ + fi; \ fi && \ # Extract only dependency files for caching optimization mkdir -p /workspace/backend /workspace/frontend && \ @@ -155,6 +165,9 @@ RUN echo "Copying source code while preserving installed dependencies..." && \ done && \ echo "Final dependency check:" && \ find /workspace -name "node_modules" -o -name ".venv" -o -name ".yarn" && \ + if [ -n "${GITHUB_SHA}" ]; then \ + echo "${GITHUB_SHA}" > /workspace/.cicd-source-sha; \ + fi && \ echo "✓ Full source code copied, dependencies preserved" && \ rm -rf /tmp/repo