From db3bab3cb9fbcca6b378f29ad0a2a4b30e081a43 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Wed, 6 May 2026 01:38:46 +0200 Subject: [PATCH] hoch --- .gitea/workflows/deploy.yml | 127 ++++++++++++++++++++++++++++++++++++ tesst | 0 2 files changed, 127 insertions(+) create mode 100644 .gitea/workflows/deploy.yml create mode 100644 tesst diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..28c8f0b --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,127 @@ +name: Deploy + +on: + push: + branches: + - main + - develop + pull_request: + branches: + - develop + +env: + BASE_DIRS: "src public api partials tools" + CONFIG_BASE_DIR: "config" + +jobs: + deploy: + runs-on: ubuntu-latest + + container: + image: usbcheck/ci-usbcheck-deploy:latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set environment + run: | + if [ "${{ gitea.ref_name }}" = "main" ]; then + echo "TARGET_PATH=${{ vars.FTP_PATH_PROD }}" >> "$GITHUB_ENV" + echo "CONFIG_ENV_DIR=config/prod" >> "$GITHUB_ENV" + echo "ENVIRONMENT_NAME=production" >> "$GITHUB_ENV" + echo "ENVIRONMENT_URL=https://emailtemplate.it" >> "$GITHUB_ENV" + elif [ "${{ gitea.ref_name }}" = "develop" ]; then + echo "TARGET_PATH=${{ vars.FTP_PATH_STAGING }}" >> "$GITHUB_ENV" + echo "CONFIG_ENV_DIR=config/staging" >> "$GITHUB_ENV" + echo "ENVIRONMENT_NAME=staging" >> "$GITHUB_ENV" + echo "ENVIRONMENT_URL=https://staging.emailtemplate.it" >> "$GITHUB_ENV" + else + echo "Unsupported branch: ${{ gitea.ref_name }}" + exit 1 + fi + + - name: Debug workspace + run: | + echo "πŸ“‚ CI Workspace:" + pwd + ls -la + + echo "πŸ“ PrΓΌfe & zeige Projektverzeichnisse:" + for d in $BASE_DIRS $CONFIG_BASE_DIR $CONFIG_ENV_DIR; do + echo "----------------------------------------" + if [ -d "$d" ]; then + echo "πŸ“‚ Inhalt von $d/:" + ls -la "$d/" + else + echo "⚠️ Verzeichnis '$d' existiert nicht!" + fi + done + + - name: Deploy via FTPS + run: | + echo "πŸ“ PrΓΌfe lokale Basisverzeichnisse..." + MISSING=0 + + for d in $BASE_DIRS; do + if [ ! -d "$d" ]; then + echo "❌ Verzeichnis '$d/' fehlt im Repo!" + MISSING=1 + fi + done + + if [ ! -d "$CONFIG_BASE_DIR" ]; then + echo "❌ Basis-Konfig-Verzeichnis '$CONFIG_BASE_DIR/' fehlt!" + MISSING=1 + fi + + if [ ! -d "$CONFIG_ENV_DIR" ]; then + echo "❌ Env-Konfiguration '$CONFIG_ENV_DIR/' fehlt!" + MISSING=1 + fi + + if [ "$MISSING" -ne 0 ]; then + echo "β›” Abbruch wegen fehlender Verzeichnisse." + exit 1 + fi + + echo "πŸš€ Deploy ${ENVIRONMENT_NAME} β†’ ${{ vars.FTP_HOST }}:${TARGET_PATH}" + + for d in $BASE_DIRS; do + echo "πŸ” Sync ${d}/ β†’ ${TARGET_PATH}${d}/" + lftp -u "${{ secrets.FTP_USER }}","${{ secrets.FTP_PASSWORD }}" "${{ vars.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 ${d}/ ${TARGET_PATH}${d}/; + bye + " || { echo "❌ Upload fΓΌr Verzeichnis '${d}' fehlgeschlagen."; exit 1; } + done + + echo "🧩 Baue gemischtes Config-Verzeichnis..." + rm -rf .ci_config_deploy + mkdir -p .ci_config_deploy + + for f in ${CONFIG_BASE_DIR}/*.php; do + if [ -f "$f" ]; then + echo "βž• Basis-Config-Datei: $f" + cp "$f" .ci_config_deploy/ + fi + done + + echo "βž• Env-Config aus ${CONFIG_ENV_DIR}/" + cp -R ${CONFIG_ENV_DIR}/. .ci_config_deploy/ + + echo "πŸ” Sync .ci_config_deploy/ β†’ ${TARGET_PATH}${CONFIG_BASE_DIR}/" + lftp -u "${{ secrets.FTP_USER }}","${{ secrets.FTP_PASSWORD }}" "${{ vars.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 .ci_config_deploy; + mirror -R --delete --exclude .gitkeep ./ ${TARGET_PATH}${CONFIG_BASE_DIR}/; + bye + " || { echo "❌ Upload fΓΌr gemischtes Config-Verzeichnis fehlgeschlagen."; exit 1; } + + echo "βœ… Deploy ${ENVIRONMENT_NAME} abgeschlossen." \ No newline at end of file diff --git a/tesst b/tesst new file mode 100644 index 0000000..e69de29