diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 852020c..e4161e3 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -34,18 +34,28 @@ jobs: run: | ssh "root@$DEPLOY_HOST" " cd ${{ env.COOP_DIR }} - git fetch origin ${{ github.ref_name }} - # Detect what changed since current HEAD - CHANGED=\$(git diff --name-only HEAD origin/${{ github.ref_name }}) + # Save current HEAD before updating + OLD_HEAD=\$(git rev-parse HEAD 2>/dev/null || echo none) + + git fetch origin ${{ github.ref_name }} git reset --hard origin/${{ github.ref_name }} + NEW_HEAD=\$(git rev-parse HEAD) + + # Detect what changed REBUILD_ALL=false - if echo \"\$CHANGED\" | grep -q '^shared/'; then - REBUILD_ALL=true - fi - if echo \"\$CHANGED\" | grep -q '^docker-compose.yml'; then + if [ \"\$OLD_HEAD\" = \"none\" ] || [ \"\$OLD_HEAD\" = \"\$NEW_HEAD\" ]; then + # First deploy or CI re-run on same commit — rebuild all REBUILD_ALL=true + else + CHANGED=\$(git diff --name-only \$OLD_HEAD \$NEW_HEAD) + if echo \"\$CHANGED\" | grep -q '^shared/'; then + REBUILD_ALL=true + fi + if echo \"\$CHANGED\" | grep -q '^docker-compose.yml'; then + REBUILD_ALL=true + fi fi for app in blog market cart events federation account; do