dsfsdf
This commit is contained in:
127
.gitlab-ci.yml
127
.gitlab-ci.yml
@@ -67,6 +67,65 @@ deploy:staging:
|
||||
|
||||
echo "🚀 Deploy ${CI_ENVIRONMENT_NAME} → ${FTP_HOST}:${TARGET_PATH}"
|
||||
|
||||
# -------------------------------------------
|
||||
# 🔢 Versionierung: versions.php laden/bauen
|
||||
# -------------------------------------------
|
||||
VERSION_WORK_FILE=".ci_versions_${CI_ENVIRONMENT_NAME}.php"
|
||||
REMOTE_VERSION_PATH="${TARGET_PATH}${CONFIG_BASE_DIR}/versions.php"
|
||||
|
||||
echo "🔍 Versuche, bestehende Versionsdatei vom Server zu laden: ${REMOTE_VERSION_PATH}"
|
||||
|
||||
if 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;
|
||||
get ${REMOTE_VERSION_PATH} -o ${VERSION_WORK_FILE};
|
||||
bye
|
||||
"; then
|
||||
echo "✅ Remote versions.php gefunden und lokal gespeichert in ${VERSION_WORK_FILE}"
|
||||
else
|
||||
echo "⚠️ Keine Remote-Versionsdatei gefunden – verwende Repo-Default (wenn vorhanden)."
|
||||
if [ -f \"${CONFIG_ENV_DIR}/versions.php\" ]; then
|
||||
cp \"${CONFIG_ENV_DIR}/versions.php\" \"${VERSION_WORK_FILE}\"
|
||||
echo \"ℹ️ ${CONFIG_ENV_DIR}/versions.php → ${VERSION_WORK_FILE}\"
|
||||
else
|
||||
echo \"⚠️ Keine versions.php im Repo gefunden – starte mit 1.0.0\"
|
||||
cat > \"${VERSION_WORK_FILE}\" <<PHP
|
||||
<?php
|
||||
\$mainversion = 1;
|
||||
\$subversion = 0;
|
||||
\$patchversion = 0;
|
||||
PHP
|
||||
fi
|
||||
fi
|
||||
|
||||
# Werte aus VERSION_WORK_FILE lesen
|
||||
MAIN=$(grep '\$mainversion' \"${VERSION_WORK_FILE}\" 2>/dev/null | tr -cd '0-9')
|
||||
SUB=$(grep '\$subversion' \"${VERSION_WORK_FILE}\" 2>/dev/null | tr -cd '0-9')
|
||||
PATCH=$(grep '\$patchversion' \"${VERSION_WORK_FILE}\" 2>/dev/null | tr -cd '0-9')
|
||||
|
||||
[ -z \"$MAIN\" ] && MAIN=1
|
||||
[ -z \"$SUB\" ] && SUB=0
|
||||
[ -z \"$PATCH\" ] && PATCH=0
|
||||
|
||||
PATCH=$((PATCH + 1))
|
||||
|
||||
echo \"🆙 Baue neue STAGING-Version: ${MAIN}.${SUB}.${PATCH}\"
|
||||
|
||||
cat > \"${VERSION_WORK_FILE}\" <<PHP
|
||||
<?php
|
||||
\$mainversion = ${MAIN};
|
||||
\$subversion = ${SUB};
|
||||
\$patchversion = ${PATCH};
|
||||
PHP
|
||||
|
||||
# Optional: Textdatei für Ausgabe auf der Webseite
|
||||
echo \"${MAIN}.${SUB}.${PATCH}\" > public/build_version.txt
|
||||
|
||||
# -------------------------------------------
|
||||
# 🔁 Deploy Basisverzeichnisse
|
||||
# -------------------------------------------
|
||||
for d in $BASE_DIRS; do
|
||||
echo "🔁 Sync ${d}/ → ${TARGET_PATH}${d}/"
|
||||
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "
|
||||
@@ -97,6 +156,10 @@ deploy:staging:
|
||||
cp -R ${CONFIG_ENV_DIR}/. .ci_config_deploy/
|
||||
fi
|
||||
|
||||
# Aktualisierte versions.php in den Config-Deploy-Ordner legen
|
||||
echo "➕ Aktuelle versions.php in .ci_config_deploy/ übernehmen"
|
||||
cp "${VERSION_WORK_FILE}" .ci_config_deploy/versions.php
|
||||
|
||||
echo "🔁 Sync .ci_config_deploy/ → ${TARGET_PATH}${CONFIG_BASE_DIR}/"
|
||||
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "
|
||||
set ftp:ssl-force true;
|
||||
@@ -174,6 +237,65 @@ deploy:production:
|
||||
|
||||
echo "🚀 Deploy ${CI_ENVIRONMENT_NAME} → ${FTP_HOST}:${TARGET_PATH}"
|
||||
|
||||
# -------------------------------------------
|
||||
# 🔢 Versionierung: versions.php laden/bauen
|
||||
# -------------------------------------------
|
||||
VERSION_WORK_FILE=".ci_versions_${CI_ENVIRONMENT_NAME}.php"
|
||||
REMOTE_VERSION_PATH="${TARGET_PATH}${CONFIG_BASE_DIR}/versions.php"
|
||||
|
||||
echo "🔍 Versuche, bestehende Versionsdatei vom Server zu laden: ${REMOTE_VERSION_PATH}"
|
||||
|
||||
if 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;
|
||||
get ${REMOTE_VERSION_PATH} -o ${VERSION_WORK_FILE};
|
||||
bye
|
||||
"; then
|
||||
echo "✅ Remote versions.php gefunden und lokal gespeichert in ${VERSION_WORK_FILE}"
|
||||
else
|
||||
echo "⚠️ Keine Remote-Versionsdatei gefunden – verwende Repo-Default (wenn vorhanden)."
|
||||
if [ -f \"${CONFIG_ENV_DIR}/versions.php\" ]; then
|
||||
cp \"${CONFIG_ENV_DIR}/versions.php\" \"${VERSION_WORK_FILE}\"
|
||||
echo \"ℹ️ ${CONFIG_ENV_DIR}/versions.php → ${VERSION_WORK_FILE}\"
|
||||
else
|
||||
echo \"⚠️ Keine versions.php im Repo gefunden – starte mit 1.0.0\"
|
||||
cat > \"${VERSION_WORK_FILE}\" <<PHP
|
||||
<?php
|
||||
\$mainversion = 1;
|
||||
\$subversion = 0;
|
||||
\$patchversion = 0;
|
||||
PHP
|
||||
fi
|
||||
fi
|
||||
|
||||
# Werte aus VERSION_WORK_FILE lesen
|
||||
MAIN=$(grep '\$mainversion' \"${VERSION_WORK_FILE}\" 2>/dev/null | tr -cd '0-9')
|
||||
SUB=$(grep '\$subversion' \"${VERSION_WORK_FILE}\" 2>/dev/null | tr -cd '0-9')
|
||||
PATCH=$(grep '\$patchversion' \"${VERSION_WORK_FILE}\" 2>/dev/null | tr -cd '0-9')
|
||||
|
||||
[ -z \"$MAIN\" ] && MAIN=1
|
||||
[ -z \"$SUB\" ] && SUB=0
|
||||
[ -z \"$PATCH\" ] && PATCH=0
|
||||
|
||||
PATCH=$((PATCH + 1))
|
||||
|
||||
echo \"🆙 Baue neue PROD-Version: ${MAIN}.${SUB}.${PATCH}\"
|
||||
|
||||
cat > \"${VERSION_WORK_FILE}\" <<PHP
|
||||
<?php
|
||||
\$mainversion = ${MAIN};
|
||||
\$subversion = ${SUB};
|
||||
\$patchversion = ${PATCH};
|
||||
PHP
|
||||
|
||||
# Optional: Textdatei für Ausgabe auf der Webseite
|
||||
echo \"${MAIN}.${SUB}.${PATCH}\" > public/build_version.txt
|
||||
|
||||
# -------------------------------------------
|
||||
# 🔁 Deploy Basisverzeichnisse
|
||||
# -------------------------------------------
|
||||
for d in $BASE_DIRS; do
|
||||
echo "🔁 Sync ${d}/ → ${TARGET_PATH}${d}/"
|
||||
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "
|
||||
@@ -204,6 +326,10 @@ deploy:production:
|
||||
cp -R ${CONFIG_ENV_DIR}/. .ci_config_deploy/
|
||||
fi
|
||||
|
||||
# Aktualisierte versions.php in den Config-Deploy-Ordner legen
|
||||
echo "➕ Aktuelle versions.php in .ci_config_deploy/ übernehmen"
|
||||
cp "${VERSION_WORK_FILE}" .ci_config_deploy/versions.php
|
||||
|
||||
echo "🔁 Sync .ci_config_deploy/ → ${TARGET_PATH}${CONFIG_BASE_DIR}/"
|
||||
lftp -u "${FTP_USER}","${FTP_PASSWORD}" "${FTP_HOST}" -e "
|
||||
set ftp:ssl-force true;
|
||||
@@ -224,4 +350,3 @@ deploy:production:
|
||||
only:
|
||||
- main
|
||||
# when: manual
|
||||
|
||||
|
||||
Reference in New Issue
Block a user