Update .gitlab-ci.yml file

This commit is contained in:
2025-11-14 02:25:57 +01:00
parent ec1eb4fc4b
commit dbb2e70a25

View File

@@ -2,7 +2,7 @@ stages:
- deploy
# -----------------------------------------
# Deployment STAGING
# Deployment auf STAGING
# -----------------------------------------
deploy:staging:
stage: deploy
@@ -22,11 +22,15 @@ deploy:staging:
- ls -la public/ || echo "⚠️ public/ existiert nicht!"
- echo "📂 Inhalt von config/:"
- ls -la config/ || echo "⚠️ config/ existiert nicht!"
- echo "📂 Inhalt von config/staging/:"
- ls -la config/staging/ || echo "⚠️ config/staging/ existiert nicht!"
script:
- |
# Sicherstellen, dass alle drei Verzeichnisse existieren
for d in src public config; do
set -e
# Sicherstellen, dass Basisverzeichnisse existieren
for d in src public config config/staging; do
if [ ! -d "$d" ]; then
echo "❌ Verzeichnis '$d/' fehlt im Repo! Abbruch."
exit 1
@@ -35,14 +39,42 @@ deploy:staging:
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"
echo "🔁 Sync src/ → ${FTP_PATH_STAGING}src/"
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 .gitkeep \
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"
echo "🔁 Sync public/ → ${FTP_PATH_STAGING}public/"
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 .gitkeep \
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 "🔁 Sync config/staging/ (nur Inhalt) → ${FTP_PATH_STAGING}config/"
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;
lcd config/staging;
mirror -R --delete \
--exclude .gitkeep \
./ ${FTP_PATH_STAGING}config/;
bye
"
echo "✅ Deploy STAGING abgeschlossen."
@@ -56,7 +88,7 @@ deploy:staging:
# -----------------------------------------
# Deployment PRODUCTION
# Deployment auf PRODUCTION
# -----------------------------------------
deploy:production:
stage: deploy
@@ -76,11 +108,15 @@ deploy:production:
- ls -la public/ || echo "⚠️ public/ existiert nicht!"
- echo "📂 Inhalt von config/:"
- ls -la config/ || echo "⚠️ config/ existiert nicht!"
- echo "📂 Inhalt von config/prod/:"
- ls -la config/prod/ || echo "⚠️ config/prod/ existiert nicht!"
script:
- |
# Sicherstellen, dass alle drei Verzeichnisse existieren
for d in src public config; do
set -e
# Sicherstellen, dass Basisverzeichnisse existieren
for d in src public config config/prod; do
if [ ! -d "$d" ]; then
echo "❌ Verzeichnis '$d/' fehlt im Repo! Abbruch."
exit 1
@@ -89,14 +125,42 @@ deploy:production:
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"
echo "🔁 Sync src/ → ${FTP_PATH_PROD}src/"
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 .gitkeep \
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"
echo "🔁 Sync public/ → ${FTP_PATH_PROD}public/"
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 .gitkeep \
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 "🔁 Sync config/prod/ (nur Inhalt) → ${FTP_PATH_PROD}config/"
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;
lcd config/prod;
mirror -R --delete \
--exclude .gitkeep \
./ ${FTP_PATH_PROD}config/;
bye
"
echo "✅ Deploy PRODUCTION abgeschlossen."