diff --git a/.gitea/workflows/dev-test.yml b/.gitea/workflows/dev-test.yml index d50f52f..14911f4 100644 --- a/.gitea/workflows/dev-test.yml +++ b/.gitea/workflows/dev-test.yml @@ -3,6 +3,10 @@ on: push: tags: - dev-test + branches: + - 'dev-test*' + paths: + - '.ci/tag.env' jobs: build-and-push: runs-on: docker @@ -26,6 +30,7 @@ jobs: - name: Build and push images env: REGISTRY: git.4nkweb.com - DOCKER_TAG: dev-test run: | + DOCKER_TAG=$(if [ -f .ci/tag.env ]; then source .ci/tag.env && echo "$DOCKER_TAG"; else echo "${GITHUB_REF_NAME:-dev-test}"; fi) + export DOCKER_TAG bash scripts/build_and_push.sh diff --git a/scripts/commit_tag_env.sh b/scripts/commit_tag_env.sh new file mode 100644 index 0000000..d5fcf2f --- /dev/null +++ b/scripts/commit_tag_env.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail +IFS=$'\n\t' + +# Usage: ./scripts/commit_tag_env.sh + +if [ $# -lt 1 ]; then + echo "[ci] usage: $0 " >&2 + exit 1 +fi + +TAG_NAME="$1" +ROOT_DIR="/home/desk/code/4NK_dev" +TAG_BRANCH="$TAG_NAME" + +cd "$ROOT_DIR" + +echo "[ci] préparer la branche ${TAG_BRANCH} (source dev si besoin)" +git fetch origin --prune >/dev/null 2>&1 || true + +if git show-ref --verify --quiet "refs/heads/${TAG_BRANCH}"; then + git checkout "${TAG_BRANCH}" +else + if git ls-remote --exit-code --heads origin "${TAG_BRANCH}" >/dev/null 2>&1; then + git checkout -b "${TAG_BRANCH}" "origin/${TAG_BRANCH}" + else + git checkout -B "${TAG_BRANCH}" "origin/dev" + fi +fi + +echo "[ci] écrire .ci/tag.env avec DOCKER_TAG=${TAG_NAME}" +mkdir -p .ci +printf "DOCKER_TAG=%s\n" "$TAG_NAME" > .ci/tag.env + +git add .ci/tag.env +git commit -m "ci(tag): set DOCKER_TAG=${TAG_NAME} in .ci/tag.env" +git push origin "HEAD:refs/heads/${TAG_BRANCH}" + +echo "[ci] terminé: branche ${TAG_BRANCH} mise à jour"