Update .gitlab-ci.yml file

This commit is contained in:
2025-11-13 01:26:49 +01:00
parent 01fa133ad1
commit 091a7ff218

View File

@@ -11,7 +11,7 @@ stages:
variables:
NODE_ENV: production
# Falls dein Build woanders hin schreibt (z.B. "build" oder ".output/public"):
# Wenn dein Build woanders hin schreibt (z.B. "build" oder ".output/public"):
# HIER anpassen!
BUILD_DIR: dist
@@ -70,13 +70,13 @@ build:
expire_in: 1 week
# -----------------------------------------
# 3. Template für FTPS-Deployment
# 3a. Staging Deployment via FTPS
# -----------------------------------------
.deploy_ftps_template: &deploy_ftps
deploy:staging:
stage: deploy
image: alpine:3.20
dependencies:
- build # <<< ganz wichtig: lade Artefakte vom Build-Job
- build
before_script:
- echo "📡 Installing lftp..."
- apk add --no-cache lftp
@@ -87,25 +87,9 @@ build:
- if [ -d "${BUILD_DIR}" ]; then ls -la "${BUILD_DIR}"; else echo "❌ ${BUILD_DIR} existiert HIER nicht!"; fi
script:
- if [ ! -d "${BUILD_DIR}" ]; then echo "❌ Abbruch: Build-Verzeichnis ${BUILD_DIR} fehlt im Deploy-Job."; exit 1; fi
- echo "🚀 Deploy via FTPS to $FTP_HOST:$FTP_PATH ..."
- lftp -e "
set ftp:ssl-force true;
set ftp:passive-mode true;
set ftp:ssl-protect-data true;
set ssl:verify-certificate no;
open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST;
mirror -R --delete --parallel=4 ${BUILD_DIR}/ $FTP_PATH;
bye
"
- echo "✅ Deploy finished."
# -----------------------------------------
# 3a. Staging Deployment
# -----------------------------------------
deploy:staging:
<<: *deploy_ftps
variables:
FTP_PATH: $FTP_PATH_STAGING
- echo "🚀 Deploy via FTPS to $FTP_HOST:$FTP_PATH_STAGING ..."
- lftp -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST; mirror -R --delete --parallel=4 ${BUILD_DIR}/ $FTP_PATH_STAGING; bye"
- echo "✅ Deploy finished (staging)."
environment:
name: staging
url: https://staging.usbcheck.it
@@ -114,12 +98,26 @@ deploy:staging:
- merge_requests
# -----------------------------------------
# 3b. Production Deployment
# 3b. Production Deployment via FTPS
# -----------------------------------------
deploy:production:
<<: *deploy_ftps
variables:
FTP_PATH: $FTP_PATH_PROD
stage: deploy
image: alpine:3.20
dependencies:
- build
before_script:
- echo "📡 Installing lftp..."
- apk add --no-cache lftp
- echo "📂 Dateien im CI-Workspace vor Deploy:"
- pwd
- ls -la
- echo "📂 Inhalt von ${BUILD_DIR} (Deploy-Job):"
- if [ -d "${BUILD_DIR}" ]; then ls -la "${BUILD_DIR}"; else echo "❌ ${BUILD_DIR} existiert HIER nicht!"; fi
script:
- if [ ! -d "${BUILD_DIR}" ]; then echo "❌ Abbruch: Build-Verzeichnis ${BUILD_DIR} fehlt im Deploy-Job."; exit 1; fi
- echo "🚀 Deploy via FTPS to $FTP_HOST:$FTP_PATH_PROD ..."
- lftp -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST; mirror -R --delete --parallel=4 ${BUILD_DIR}/ $FTP_PATH_PROD; bye"
- echo "✅ Deploy finished (production)."
environment:
name: production
url: https://www.usbcheck.it