feat(deploy): enhance deployment scripts with skip options for backend and frontend
All checks were successful
Deploy to production / deploy (push) Successful in 1m31s
All checks were successful
Deploy to production / deploy (push) Successful in 1m31s
- Updated `deploy-yourpart-bluegreen.sh` to pass additional arguments for skipping backend or frontend updates. - Enhanced `update.sh` to handle `--skip-backend` and `--skip-frontend` flags, allowing for more flexible deployment based on changes detected. - Modified deployment workflow to conditionally execute based on changes in frontend or backend files, improving deployment efficiency.
This commit is contained in:
@@ -37,6 +37,28 @@ jobs:
|
||||
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
if grep -E '^frontend/' changed-files.txt >/dev/null; then
|
||||
echo "frontend_changed=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "frontend_changed=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
if grep -E '^backend/' changed-files.txt \
|
||||
| grep -Ev '^(backend/scripts/.*(bisaya|course|didactics|vocab)|backend/sql/.*vocab|backend/migrations/.*vocab)$' >/dev/null; then
|
||||
echo "backend_app_changed=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "backend_app_changed=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
# App-Code-Änderungen, die einen echten Deploy benötigen
|
||||
# (Frontend oder Backend außerhalb reiner Kurs-/Dokument-Sync-Dateien)
|
||||
if grep -E '^(frontend/|backend/)' changed-files.txt \
|
||||
| grep -Ev '^(backend/scripts/.*(bisaya|course|didactics|vocab)|backend/sql/.*vocab|backend/migrations/.*vocab|docs/.*(COURSE|VOCAB|BISAYA|GERMAN_FOR_BISAYA))'; then
|
||||
echo "app_changed=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "app_changed=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Prepare SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
@@ -54,11 +76,32 @@ jobs:
|
||||
"echo SSH OK"
|
||||
|
||||
- name: Run deployment script
|
||||
if: steps.vocab_course_changes.outputs.app_changed == 'true'
|
||||
run: |
|
||||
DEPLOY_FLAGS=""
|
||||
if [ "${{ steps.vocab_course_changes.outputs.backend_app_changed }}" = "true" ] && [ "${{ steps.vocab_course_changes.outputs.frontend_changed }}" != "true" ]; then
|
||||
DEPLOY_FLAGS="--skip-frontend"
|
||||
elif [ "${{ steps.vocab_course_changes.outputs.frontend_changed }}" = "true" ] && [ "${{ steps.vocab_course_changes.outputs.backend_app_changed }}" != "true" ]; then
|
||||
DEPLOY_FLAGS="--skip-backend"
|
||||
fi
|
||||
|
||||
DEPLOY_TARGET="${{ secrets.PROD_DEPLOY_TARGET }}"
|
||||
if [ -z "$DEPLOY_TARGET" ]; then
|
||||
DEPLOY_TARGET="/opt/yourpart-green"
|
||||
fi
|
||||
|
||||
echo "Deploy-Flags: ${DEPLOY_FLAGS:-<none>}"
|
||||
echo "Deploy-Target: $DEPLOY_TARGET"
|
||||
|
||||
ssh -i ~/.ssh/id_ed25519 \
|
||||
-p "${{ secrets.PROD_PORT }}" \
|
||||
"${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}" \
|
||||
"/home/tsschulz/deploy-yourpart-bluegreen.sh"
|
||||
"/home/tsschulz/deploy-yourpart-bluegreen.sh ${DEPLOY_TARGET} ${DEPLOY_FLAGS}"
|
||||
|
||||
- name: Skip full deployment (no app changes)
|
||||
if: steps.vocab_course_changes.outputs.app_changed != 'true'
|
||||
run: |
|
||||
echo "Kein Full-Deploy: Es wurden keine Frontend/Backend-App-Dateien geändert."
|
||||
|
||||
- name: Sync vocab course content
|
||||
if: steps.vocab_course_changes.outputs.changed == 'true'
|
||||
|
||||
Reference in New Issue
Block a user