Update .gitlab-ci.yml file
This commit is contained in:
128
.gitlab-ci.yml
128
.gitlab-ci.yml
@@ -1,51 +1,33 @@
|
||||
stages:
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
NODE_ENV: production
|
||||
BUILD_DIR: dist
|
||||
|
||||
# -----------------------------------------
|
||||
# Staging: baut & deployed in einem Job
|
||||
# -----------------------------------------
|
||||
# -------------------------
|
||||
# Staging: Dateien hochladen
|
||||
# -------------------------
|
||||
deploy:staging:
|
||||
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:
|
||||
- |
|
||||
set -e
|
||||
|
||||
echo "📦 Install & Build (staging)..."
|
||||
apt-get update && apt-get install -y lftp
|
||||
|
||||
corepack enable
|
||||
corepack prepare pnpm@9.12.0 --activate
|
||||
pnpm -v
|
||||
|
||||
if [ -f pnpm-lock.yaml ]; then
|
||||
echo "pnpm-lock.yaml gefunden – nutze --frozen-lockfile"
|
||||
pnpm install --frozen-lockfile --reporter=append-only
|
||||
else
|
||||
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)."
|
||||
- echo "🚀 Deploy (staging) 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 \
|
||||
--exclude .git/ \
|
||||
--exclude .gitlab-ci.yml \
|
||||
./ ${FTP_PATH_STAGING};
|
||||
bye
|
||||
"
|
||||
- echo "✅ Deploy finished (staging)."
|
||||
environment:
|
||||
name: staging
|
||||
url: https://staging.usbcheck.it
|
||||
@@ -53,47 +35,33 @@ deploy:staging:
|
||||
- develop
|
||||
- merge_requests
|
||||
|
||||
# -----------------------------------------
|
||||
# Production: baut & deployed in einem Job
|
||||
# -----------------------------------------
|
||||
# -------------------------
|
||||
# Production: Dateien hochladen
|
||||
# -------------------------
|
||||
deploy:production:
|
||||
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:
|
||||
- |
|
||||
set -e
|
||||
|
||||
echo "📦 Install & Build (production)..."
|
||||
apt-get update && apt-get install -y lftp
|
||||
|
||||
corepack enable
|
||||
corepack prepare pnpm@9.12.0 --activate
|
||||
pnpm -v
|
||||
|
||||
if [ -f pnpm-lock.yaml ]; then
|
||||
echo "pnpm-lock.yaml gefunden – nutze --frozen-lockfile"
|
||||
pnpm install --frozen-lockfile --reporter=append-only
|
||||
else
|
||||
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)."
|
||||
- echo "🚀 Deploy (production) 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 \
|
||||
--exclude .git/ \
|
||||
--exclude .gitlab-ci.yml \
|
||||
./ ${FTP_PATH_PROD};
|
||||
bye
|
||||
"
|
||||
- echo "✅ Deploy finished (production)."
|
||||
environment:
|
||||
name: production
|
||||
url: https://www.usbcheck.it
|
||||
|
||||
Reference in New Issue
Block a user