Compare commits
3 Commits
d9ff6d640d
...
v1.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| a31202f63b | |||
| 0afd6bbb60 | |||
| 2c647f0284 |
@@ -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"
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ const Layout = ({ children }: { children: React.ReactNode }) => {
|
|||||||
className="fixed top-0 left-0 right-0 z-[100]"
|
className="fixed top-0 left-0 right-0 z-[100]"
|
||||||
>
|
>
|
||||||
<header
|
<header
|
||||||
className={`transition-all duration-300 flex items-center py-1 ${
|
className={`transition-all duration-300 flex items-center ${
|
||||||
isScrolled
|
isScrolled
|
||||||
? "bg-white/90 backdrop-blur-lg border-b border-slate-200 shadow-sm"
|
? "bg-white/90 backdrop-blur-lg border-b border-slate-200 shadow-sm py-2"
|
||||||
: "bg-gradient-to-b from-white/80 via-white/40 to-transparent"
|
: "bg-gradient-to-b from-white/80 via-white/40 to-transparent py-4"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<div className="container-custom flex justify-between items-center w-full relative z-10">
|
<div className="container-custom flex justify-between items-center w-full relative z-10">
|
||||||
@@ -65,7 +65,7 @@ const Layout = ({ children }: { children: React.ReactNode }) => {
|
|||||||
aria-label={`${t("nav.home")} - Zur Startseite`}
|
aria-label={`${t("nav.home")} - Zur Startseite`}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={`relative transition-all duration-300 ${isScrolled ? "h-[50px] md:h-[80px] w-[120px] md:w-[200px] mt-0 mb-[-10px]" : "h-[80px] md:h-[140px] w-[180px] md:w-[320px] mt-2 md:mt-4 mb-[-20px] md:mb-[-40px]"}`}
|
className={`relative transition-all duration-300 ${isScrolled ? "h-[50px] md:h-[60px] w-[120px] md:w-[150px]" : "h-[70px] md:h-[100px] w-[160px] md:w-[240px]"}`}
|
||||||
>
|
>
|
||||||
<Image
|
<Image
|
||||||
src="/assets/logo.png"
|
src="/assets/logo.png"
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ if [ "$ACTION" == "push" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wipe remote DB clean before restore to avoid constraint errors
|
|
||||||
echo "🧹 Wiping remote database schema..."
|
echo "🧹 Wiping remote database schema..."
|
||||||
ssh "$REMOTE_HOST" "docker exec $REMOTE_DB_CONTAINER psql -U $DB_USER $DB_NAME -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'"
|
ssh "$REMOTE_HOST" "docker exec $REMOTE_DB_CONTAINER psql -U $DB_USER $DB_NAME -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'"
|
||||||
|
|
||||||
@@ -100,7 +99,6 @@ elif [ "$ACTION" == "pull" ]; then
|
|||||||
scp "$REMOTE_HOST:$REMOTE_DIR/dump.sql" dump.sql
|
scp "$REMOTE_HOST:$REMOTE_DIR/dump.sql" dump.sql
|
||||||
|
|
||||||
# 3. Restore Locally
|
# 3. Restore Locally
|
||||||
# Wipe local DB clean before restore to avoid constraint errors
|
|
||||||
echo "🧹 Wiping local database schema..."
|
echo "🧹 Wiping local database schema..."
|
||||||
docker exec "$LOCAL_DB_CONTAINER" psql -U "$DB_USER" "$DB_NAME" -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'
|
docker exec "$LOCAL_DB_CONTAINER" psql -U "$DB_USER" "$DB_NAME" -c 'DROP SCHEMA public CASCADE; CREATE SCHEMA public;'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user