refactor: use explicit Git reference variables for more robust deployment target and image tag determination in Gitea workflow.
All checks were successful
Build & Deploy / 🔍 Prepare Environment (push) Successful in 5s
Build & Deploy / 🧪 QA (push) Successful in 1m33s
Build & Deploy / 🏗️ Build (push) Successful in 2m7s
Build & Deploy / 🚀 Deploy (push) Successful in 9s
Build & Deploy / 🔔 Notifications (push) Successful in 2s
All checks were successful
Build & Deploy / 🔍 Prepare Environment (push) Successful in 5s
Build & Deploy / 🧪 QA (push) Successful in 1m33s
Build & Deploy / 🏗️ Build (push) Successful in 2m7s
Build & Deploy / 🚀 Deploy (push) Successful in 9s
Build & Deploy / 🔔 Notifications (push) Successful in 2s
This commit is contained in:
@@ -51,12 +51,25 @@ jobs:
|
|||||||
id: determine
|
id: determine
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
TAG="${{ github.ref_name }}"
|
REF="${{ github.ref }}"
|
||||||
|
REF_NAME="${{ github.ref_name }}"
|
||||||
|
REF_TYPE="${{ github.ref_type }}"
|
||||||
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
|
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
|
||||||
DOMAIN_BASE="mb-grid-solutions.com"
|
DOMAIN_BASE="mb-grid-solutions.com"
|
||||||
PRJ_ID="mb-grid-solutions"
|
PRJ_ID="mb-grid-solutions"
|
||||||
|
|
||||||
if [[ "${{ github.ref_type }}" == "branch" && "$TAG" == "main" ]]; then
|
echo "Detecting environment for ref: $REF ($REF_NAME, type: $REF_TYPE)"
|
||||||
|
|
||||||
|
# Fallback for REF_TYPE if missing
|
||||||
|
if [[ -z "$REF_TYPE" ]]; then
|
||||||
|
if [[ "$REF" == refs/tags/* ]]; then
|
||||||
|
REF_TYPE="tag"
|
||||||
|
elif [[ "$REF" == refs/heads/* ]]; then
|
||||||
|
REF_TYPE="branch"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$REF_TYPE" == "branch" && "$REF_NAME" == "main" ]]; then
|
||||||
TARGET="testing"
|
TARGET="testing"
|
||||||
IMAGE_TAG="testing-${SHORT_SHA}"
|
IMAGE_TAG="testing-${SHORT_SHA}"
|
||||||
ENV_FILE=".env.testing"
|
ENV_FILE=".env.testing"
|
||||||
@@ -64,18 +77,18 @@ jobs:
|
|||||||
NEXT_PUBLIC_BASE_URL="https://testing.${DOMAIN_BASE}"
|
NEXT_PUBLIC_BASE_URL="https://testing.${DOMAIN_BASE}"
|
||||||
DIRECTUS_URL="https://cms.testing.${DOMAIN_BASE}"
|
DIRECTUS_URL="https://cms.testing.${DOMAIN_BASE}"
|
||||||
DIRECTUS_HOST="cms.testing.${DOMAIN_BASE}"
|
DIRECTUS_HOST="cms.testing.${DOMAIN_BASE}"
|
||||||
elif [[ "${{ github.ref_type }}" == "tag" ]]; then
|
elif [[ "$REF_TYPE" == "tag" ]]; then
|
||||||
if [[ "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
if [[ "$REF_NAME" =~ ^v[0-9]+\.[0-9]+(\.[0-9]+)?$ ]]; then
|
||||||
TARGET="production"
|
TARGET="production"
|
||||||
IMAGE_TAG="$TAG"
|
IMAGE_TAG="$REF_NAME"
|
||||||
ENV_FILE=".env.prod"
|
ENV_FILE=".env.prod"
|
||||||
TRAEFIK_HOST="${DOMAIN_BASE}, www.${DOMAIN_BASE}"
|
TRAEFIK_HOST="${DOMAIN_BASE}, www.${DOMAIN_BASE}"
|
||||||
NEXT_PUBLIC_BASE_URL="https://${DOMAIN_BASE}"
|
NEXT_PUBLIC_BASE_URL="https://${DOMAIN_BASE}"
|
||||||
DIRECTUS_URL="https://cms.${DOMAIN_BASE}"
|
DIRECTUS_URL="https://cms.${DOMAIN_BASE}"
|
||||||
DIRECTUS_HOST="cms.${DOMAIN_BASE}"
|
DIRECTUS_HOST="cms.${DOMAIN_BASE}"
|
||||||
elif [[ "$TAG" =~ -rc || "$TAG" =~ -beta || "$TAG" =~ -alpha ]]; then
|
elif [[ "$REF_NAME" =~ -rc || "$REF_NAME" =~ -beta || "$REF_NAME" =~ -alpha ]]; then
|
||||||
TARGET="staging"
|
TARGET="staging"
|
||||||
IMAGE_TAG="$TAG"
|
IMAGE_TAG="$REF_NAME"
|
||||||
ENV_FILE=".env.staging"
|
ENV_FILE=".env.staging"
|
||||||
TRAEFIK_HOST="staging.${DOMAIN_BASE}"
|
TRAEFIK_HOST="staging.${DOMAIN_BASE}"
|
||||||
NEXT_PUBLIC_BASE_URL="https://staging.${DOMAIN_BASE}"
|
NEXT_PUBLIC_BASE_URL="https://staging.${DOMAIN_BASE}"
|
||||||
@@ -83,12 +96,16 @@ jobs:
|
|||||||
DIRECTUS_HOST="cms.staging.${DOMAIN_BASE}"
|
DIRECTUS_HOST="cms.staging.${DOMAIN_BASE}"
|
||||||
else
|
else
|
||||||
TARGET="skip"
|
TARGET="skip"
|
||||||
|
echo "Tag $REF_NAME did not match any environment pattern."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
TARGET="skip"
|
TARGET="skip"
|
||||||
|
echo "Ref type $REF_TYPE is not handled for deployment."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Target determined: $TARGET"
|
echo "Target determined: $TARGET"
|
||||||
|
echo "Image tag: $IMAGE_TAG"
|
||||||
|
|
||||||
echo "target=$TARGET" >> "$GITHUB_OUTPUT"
|
echo "target=$TARGET" >> "$GITHUB_OUTPUT"
|
||||||
echo "image_tag=$IMAGE_TAG" >> "$GITHUB_OUTPUT"
|
echo "image_tag=$IMAGE_TAG" >> "$GITHUB_OUTPUT"
|
||||||
echo "env_file=$ENV_FILE" >> "$GITHUB_OUTPUT"
|
echo "env_file=$ENV_FILE" >> "$GITHUB_OUTPUT"
|
||||||
|
|||||||
Reference in New Issue
Block a user