commit 90a4f657b6c18e7def5b9008e7517fb9566038fc Author: UltimateCoder Date: Sat Sep 5 13:39:20 2026 +0200 Add replace-build-vars composite action, wire into docker.yaml Replaces {{BUILD_VAR_*}} placeholders in all text files of the calling repo's checkout with Gitea Actions build/commit/branch info before the docker build step runs. Language-agnostic (plain text substitution), runs unconditionally, no-op when no placeholders are present. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01VVTCJvvJmS4fCSrm5wxwVo diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..f718393 --- /dev/null +++ b/action.yml @@ -0,0 +1,42 @@ +name: Replace Build Placeholders +description: > + Ersetzt {{BUILD_VAR_*}}-Platzhalter in allen Textdateien durch Gitea-Actions-Build-Infos + (Commit, Branch, Run-Metadaten, …). Sprachunabhängig (reiner Text-Replace, + kein Build-Tool-Bezug), kein Input nötig. +runs: + using: composite + steps: + - shell: bash + run: | + set -euo pipefail + + SHA_SHORT="${GITHUB_SHA:0:7}" + BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" + + declare -A VARS=( + [BUILD_VAR_GITHUB_SHA]="${GITHUB_SHA:-}" + [BUILD_VAR_GITHUB_REF_NAME]="${GITHUB_REF_NAME:-}" + [BUILD_VAR_GITHUB_REF_TYPE]="${GITHUB_REF_TYPE:-}" + [BUILD_VAR_GITHUB_REPOSITORY]="${GITHUB_REPOSITORY:-}" + [BUILD_VAR_GITHUB_REPOSITORY_OWNER]="${GITHUB_REPOSITORY_OWNER:-}" + [BUILD_VAR_GITHUB_RUN_ID]="${GITHUB_RUN_ID:-}" + [BUILD_VAR_GITHUB_RUN_NUMBER]="${GITHUB_RUN_NUMBER:-}" + [BUILD_VAR_GITHUB_RUN_ATTEMPT]="${GITHUB_RUN_ATTEMPT:-}" + [BUILD_VAR_GITHUB_RETENTION_DAYS]="${GITHUB_RETENTION_DAYS:-}" + [BUILD_VAR_GITHUB_SERVER_URL]="${GITHUB_SERVER_URL:-}" + [BUILD_VAR_GITHUB_EVENT_NAME]="${GITHUB_EVENT_NAME:-}" + [BUILD_VAR_GITHUB_BASE_REF]="${GITHUB_BASE_REF:-}" + [BUILD_VAR_GITHUB_HEAD_REF]="${GITHUB_HEAD_REF:-}" + [BUILD_VAR_GITHUB_ACTION_REF]="${GITHUB_ACTION_REF:-}" + [BUILD_VAR_GITHUB_ACTION_REPOSITORY]="${GITHUB_ACTION_REPOSITORY:-}" + [BUILD_VAR_GITEA_ACTIONS_RUNNER_VERSION]="${GITEA_ACTIONS_RUNNER_VERSION:-}" + [BUILD_VAR_COMMIT_SHA_SHORT]="$SHA_SHORT" + [BUILD_VAR_BUILD_DATE]="$BUILD_DATE" + ) + + SED_ARGS=() + for key in "${!VARS[@]}"; do + SED_ARGS+=(-e "s|{{${key}}}|${VARS[$key]}|g") + done + + grep -rIl --exclude-dir=.git '' . | xargs -r sed -i "${SED_ARGS[@]}"