From 7a5b9e53f1d48ff252e7fb1bb7c25e2bcb178918 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Fri, 14 Nov 2025 02:07:05 +0100 Subject: [PATCH 1/2] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 391a78f..d56d1f2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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,14 @@ deploy:staging: echo "🚀 Deploy STAGING → ${FTP_HOST}:${FTP_PATH_STAGING}" - # src deployen + 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 src/ ${FTP_PATH_STAGING}src/; bye" - # public deployen + 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 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/ → ${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; mirror -R --delete config/staging/ ${FTP_PATH_STAGING}config/; bye" echo "✅ Deploy STAGING abgeschlossen." @@ -51,13 +55,12 @@ deploy:staging: url: https://staging.usbcheck.it only: - - main - develop - merge_requests # ----------------------------------------- -# Deployment PRODUCTION +# Deployment auf PRODUCTION # ----------------------------------------- deploy:production: stage: deploy @@ -77,11 +80,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 @@ -90,14 +97,14 @@ deploy:production: echo "🚀 Deploy PRODUCTION → ${FTP_HOST}:${FTP_PATH_PROD}" - # src deployen + 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 src/ ${FTP_PATH_PROD}src/; bye" - # public deployen + 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 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/ → ${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; mirror -R --delete config/prod/ ${FTP_PATH_PROD}config/; bye" echo "✅ Deploy PRODUCTION abgeschlossen." From 370dc29a7abfed57ab344e8e5bb7b9deecc9bd8a Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Fri, 14 Nov 2025 03:31:16 +0100 Subject: [PATCH 2/2] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 60 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d56d1f2..34938f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,13 +40,35 @@ deploy:staging: echo "🚀 Deploy STAGING → ${FTP_HOST}:${FTP_PATH_STAGING}" 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 src/ ${FTP_PATH_STAGING}src/; bye" + 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 + " 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 public/ ${FTP_PATH_STAGING}public/; bye" + 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 + " - echo "🔁 Sync config/staging/ → ${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; mirror -R --delete config/staging/ ${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." @@ -98,13 +120,35 @@ deploy:production: echo "🚀 Deploy PRODUCTION → ${FTP_HOST}:${FTP_PATH_PROD}" 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 src/ ${FTP_PATH_PROD}src/; bye" + 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 + " 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 public/ ${FTP_PATH_PROD}public/; bye" + 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 + " - echo "🔁 Sync config/prod/ → ${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; mirror -R --delete config/prod/ ${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."