Archived
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 <[email protected]>
Claude-Session: https://claude.ai/code/session_01VVTCJvvJmS4fCSrm5wxwVo
This commit is contained in:
1 parent
c52dc1f989
commit
b0ce78f80f
2 files changed
+45
No files matched your search
@@ -43,6 +43,9 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Replace build placeholders
|
||||
uses: UltimateCoder/resuable-workflows/actions/replace-build-vars@v3
|
||||
|
||||
- name: Build Image
|
||||
run: |
|
||||
docker build \
|
||||
|
||||
@@ -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[@]}"
|
||||
Reference in new issue
Block a user