Update .gitlab-ci.yml file
This commit is contained in:
@@ -1,48 +1,109 @@
|
|||||||
stages:
|
stages:
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
# -------------------------
|
# -----------------------------------------
|
||||||
# Staging: Dateien hochladen
|
# Deployment STAGING
|
||||||
# -------------------------
|
# -----------------------------------------
|
||||||
deploy:staging:
|
deploy:staging:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: alpine:3.20
|
image: alpine:3.20
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- echo "📡 Installing lftp..."
|
- echo "📡 Installing lftp..."
|
||||||
- apk add --no-cache lftp
|
- apk add --no-cache lftp
|
||||||
- echo "📂 Dateien im CI-Workspace:"
|
|
||||||
|
- echo "📂 CI Workspace:"
|
||||||
- pwd
|
- pwd
|
||||||
- ls -la
|
- ls -la
|
||||||
|
|
||||||
|
- echo "📂 Inhalt von src/:"
|
||||||
|
- ls -la src/ || echo "⚠️ src/ existiert nicht!"
|
||||||
|
- echo "📂 Inhalt von public/:"
|
||||||
|
- ls -la public/ || echo "⚠️ public/ existiert nicht!"
|
||||||
|
- echo "📂 Inhalt von config/:"
|
||||||
|
- ls -la config/ || echo "⚠️ config/ existiert nicht!"
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- echo "🚀 Deploy (staging) via FTPS to ${FTP_HOST}:${FTP_PATH_STAGING} ..."
|
- |
|
||||||
- lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete --exclude .git --exclude .gitlab-ci.yml --exclude node_modules --exclude .vscode --exclude .DS_Store --exclude README.md ./ ${FTP_PATH_STAGING}; bye"
|
# Sicherstellen, dass alle drei Verzeichnisse existieren
|
||||||
- echo "✅ Deploy finished (staging)."
|
for d in src public config; do
|
||||||
|
if [ ! -d "$d" ]; then
|
||||||
|
echo "❌ Verzeichnis '$d/' fehlt im Repo! Abbruch."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "🚀 Deploy STAGING → ${FTP_HOST}:${FTP_PATH_STAGING}"
|
||||||
|
|
||||||
|
# src deployen
|
||||||
|
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete src/ ${FTP_PATH_STAGING}src/; bye"
|
||||||
|
|
||||||
|
# public deployen
|
||||||
|
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete public/ ${FTP_PATH_STAGING}public/; bye"
|
||||||
|
|
||||||
|
# config deployen
|
||||||
|
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete config/ ${FTP_PATH_STAGING}config/; bye"
|
||||||
|
|
||||||
|
echo "✅ Deploy STAGING abgeschlossen."
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
name: staging
|
name: staging
|
||||||
url: https://staging.usbcheck.it
|
url: https://staging.usbcheck.it
|
||||||
|
|
||||||
only:
|
only:
|
||||||
- develop
|
- develop
|
||||||
- merge_requests
|
- merge_requests
|
||||||
|
|
||||||
# -------------------------
|
|
||||||
# Production: Dateien hochladen
|
# -----------------------------------------
|
||||||
# -------------------------
|
# Deployment PRODUCTION
|
||||||
|
# -----------------------------------------
|
||||||
deploy:production:
|
deploy:production:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: alpine:3.20
|
image: alpine:3.20
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- echo "📡 Installing lftp..."
|
- echo "📡 Installing lftp..."
|
||||||
- apk add --no-cache lftp
|
- apk add --no-cache lftp
|
||||||
- echo "📂 Dateien im CI-Workspace:"
|
|
||||||
|
- echo "📂 CI Workspace:"
|
||||||
- pwd
|
- pwd
|
||||||
- ls -la
|
- ls -la
|
||||||
|
|
||||||
|
- echo "📂 Inhalt von src/:"
|
||||||
|
- ls -la src/ || echo "⚠️ src/ existiert nicht!"
|
||||||
|
- echo "📂 Inhalt von public/:"
|
||||||
|
- ls -la public/ || echo "⚠️ public/ existiert nicht!"
|
||||||
|
- echo "📂 Inhalt von config/:"
|
||||||
|
- ls -la config/ || echo "⚠️ config/ existiert nicht!"
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- echo "🚀 Deploy (production) via FTPS to ${FTP_HOST}:${FTP_PATH_PROD} ..."
|
- |
|
||||||
- lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete --exclude .git --exclude .gitlab-ci.yml --exclude node_modules --exclude .vscode --exclude .DS_Store --exclude README.md ./ ${FTP_PATH_PROD}; bye"
|
# Sicherstellen, dass alle drei Verzeichnisse existieren
|
||||||
- echo "✅ Deploy finished (production)."
|
for d in src public config; do
|
||||||
|
if [ ! -d "$d" ]; then
|
||||||
|
echo "❌ Verzeichnis '$d/' fehlt im Repo! Abbruch."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "🚀 Deploy PRODUCTION → ${FTP_HOST}:${FTP_PATH_PROD}"
|
||||||
|
|
||||||
|
# src deployen
|
||||||
|
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete src/ ${FTP_PATH_PROD}src/; bye"
|
||||||
|
|
||||||
|
# public deployen
|
||||||
|
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete public/ ${FTP_PATH_PROD}public/; bye"
|
||||||
|
|
||||||
|
# config deployen
|
||||||
|
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "set ftp:ssl-force true; set ftp:passive-mode true; set ftp:ssl-protect-data true; set ssl:verify-certificate no; mirror -R --delete config/ ${FTP_PATH_PROD}config/; bye"
|
||||||
|
|
||||||
|
echo "✅ Deploy PRODUCTION abgeschlossen."
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
name: production
|
name: production
|
||||||
url: https://www.usbcheck.it
|
url: https://www.usbcheck.it
|
||||||
|
|
||||||
only:
|
only:
|
||||||
- main
|
- main
|
||||||
when: manual
|
when: manual
|
||||||
|
|||||||
Reference in New Issue
Block a user