Update .gitlab-ci.yml file

This commit is contained in:
2025-11-13 22:26:12 +01:00
parent 598c7ee7be
commit 0eada91e81

View File

@@ -1,51 +1,33 @@
stages: stages:
- deploy - deploy
variables: # -------------------------
NODE_ENV: production # Staging: Dateien hochladen
BUILD_DIR: dist # -------------------------
# -----------------------------------------
# Staging: baut & deployed in einem Job
# -----------------------------------------
deploy:staging: deploy:staging:
stage: deploy stage: deploy
image: node:20-bullseye image: alpine:3.20
before_script:
- echo "📡 Installing lftp..."
- apk add --no-cache lftp
- echo "📂 Dateien im CI-Workspace:"
- pwd
- ls -la
script: script:
- | - echo "🚀 Deploy (staging) via FTPS to ${FTP_HOST}:${FTP_PATH_STAGING} ..."
set -e - lftp -e "
set ftp:ssl-force true;
echo "📦 Install & Build (staging)..." set ftp:passive-mode true;
apt-get update && apt-get install -y lftp set ftp:ssl-protect-data true;
set ssl:verify-certificate no;
corepack enable open -u ${FTP_USER},${FTP_PASSWORD} ${FTP_HOST};
corepack prepare pnpm@9.12.0 --activate mirror -R --delete \
pnpm -v --exclude .git/ \
--exclude .gitlab-ci.yml \
if [ -f pnpm-lock.yaml ]; then ./ ${FTP_PATH_STAGING};
echo "pnpm-lock.yaml gefunden nutze --frozen-lockfile" bye
pnpm install --frozen-lockfile --reporter=append-only "
else - echo "✅ Deploy finished (staging)."
echo "Keine pnpm-lock.yaml normales pnpm install"
pnpm install --reporter=append-only
fi
pnpm build
echo "📂 Build-Output (Top-Level):"
ls -la
echo "📂 Inhalt von ${BUILD_DIR}:"
if [ -d "${BUILD_DIR}" ]; then
ls -la "${BUILD_DIR}"
else
echo "❌ Verzeichnis ${BUILD_DIR} existiert NICHT Abbruch."
exit 1
fi
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: environment:
name: staging name: staging
url: https://staging.usbcheck.it url: https://staging.usbcheck.it
@@ -53,47 +35,33 @@ deploy:staging:
- develop - develop
- merge_requests - merge_requests
# ----------------------------------------- # -------------------------
# Production: baut & deployed in einem Job # Production: Dateien hochladen
# ----------------------------------------- # -------------------------
deploy:production: deploy:production:
stage: deploy stage: deploy
image: node:20-bullseye image: alpine:3.20
before_script:
- echo "📡 Installing lftp..."
- apk add --no-cache lftp
- echo "📂 Dateien im CI-Workspace:"
- pwd
- ls -la
script: script:
- | - echo "🚀 Deploy (production) via FTPS to ${FTP_HOST}:${FTP_PATH_PROD} ..."
set -e - lftp -e "
set ftp:ssl-force true;
echo "📦 Install & Build (production)..." set ftp:passive-mode true;
apt-get update && apt-get install -y lftp set ftp:ssl-protect-data true;
set ssl:verify-certificate no;
corepack enable open -u ${FTP_USER},${FTP_PASSWORD} ${FTP_HOST};
corepack prepare pnpm@9.12.0 --activate mirror -R --delete \
pnpm -v --exclude .git/ \
--exclude .gitlab-ci.yml \
if [ -f pnpm-lock.yaml ]; then ./ ${FTP_PATH_PROD};
echo "pnpm-lock.yaml gefunden nutze --frozen-lockfile" bye
pnpm install --frozen-lockfile --reporter=append-only "
else - echo "✅ Deploy finished (production)."
echo "Keine pnpm-lock.yaml normales pnpm install"
pnpm install --reporter=append-only
fi
pnpm build
echo "📂 Build-Output (Top-Level):"
ls -la
echo "📂 Inhalt von ${BUILD_DIR}:"
if [ -d "${BUILD_DIR}" ]; then
ls -la "${BUILD_DIR}"
else
echo "❌ Verzeichnis ${BUILD_DIR} existiert NICHT Abbruch."
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: environment:
name: production name: production
url: https://www.usbcheck.it url: https://www.usbcheck.it