Merge pull request 'ci(deploy): auto FULL when content/anchors/pages/scripts change' (#179) from chore/deploy-gate-full-on-content-anchors-pages-scripts-20260303-171645 into main
Reviewed-on: #179
This commit was merged in pull request #179.
This commit is contained in:
@@ -93,7 +93,7 @@ jobs:
|
|||||||
|
|
||||||
git log -1 --oneline
|
git log -1 --oneline
|
||||||
|
|
||||||
- name: Gate — decide HOTPATCH vs FULL rebuild
|
- name: Gate — decide SKIP vs HOTPATCH vs FULL rebuild
|
||||||
env:
|
env:
|
||||||
INPUT_FORCE: ${{ inputs.force }}
|
INPUT_FORCE: ${{ inputs.force }}
|
||||||
run: |
|
run: |
|
||||||
@@ -109,6 +109,7 @@ jobs:
|
|||||||
echo "== changed files =="
|
echo "== changed files =="
|
||||||
echo "$CHANGED" | sed -n '1,260p'
|
echo "$CHANGED" | sed -n '1,260p'
|
||||||
|
|
||||||
|
# 0) Forçage manuel
|
||||||
if [[ "$FORCE" == "1" ]]; then
|
if [[ "$FORCE" == "1" ]]; then
|
||||||
echo "GO=1" >> /tmp/deploy.env
|
echo "GO=1" >> /tmp/deploy.env
|
||||||
echo "MODE='full'" >> /tmp/deploy.env
|
echo "MODE='full'" >> /tmp/deploy.env
|
||||||
@@ -116,16 +117,40 @@ jobs:
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Auto mode: uniquement annotations/media => hotpatch only
|
# 1) Détection des classes de changements
|
||||||
|
HAS_FULL=0
|
||||||
|
HAS_HOTPATCH=0
|
||||||
|
|
||||||
|
# FULL si build-impacting (zéro surprise)
|
||||||
|
if echo "$CHANGED" | grep -qE '^(src/content/|src/anchors/|src/pages/|scripts/)'; then
|
||||||
|
HAS_FULL=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# HOTPATCH si annotations/media
|
||||||
if echo "$CHANGED" | grep -qE '^(src/annotations/|public/media/)'; then
|
if echo "$CHANGED" | grep -qE '^(src/annotations/|public/media/)'; then
|
||||||
|
HAS_HOTPATCH=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Gate flags: HAS_FULL=$HAS_FULL HAS_HOTPATCH=$HAS_HOTPATCH"
|
||||||
|
|
||||||
|
# 2) Décision (priorité au FULL)
|
||||||
|
if [[ "$HAS_FULL" == "1" ]]; then
|
||||||
|
echo "GO=1" >> /tmp/deploy.env
|
||||||
|
echo "MODE='full'" >> /tmp/deploy.env
|
||||||
|
echo "✅ build-impacting change -> MODE=full (rebuild+restart)"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$HAS_HOTPATCH" == "1" ]]; then
|
||||||
echo "GO=1" >> /tmp/deploy.env
|
echo "GO=1" >> /tmp/deploy.env
|
||||||
echo "MODE='hotpatch'" >> /tmp/deploy.env
|
echo "MODE='hotpatch'" >> /tmp/deploy.env
|
||||||
echo "✅ annotations/media change -> MODE=hotpatch"
|
echo "✅ annotations/media change -> MODE=hotpatch"
|
||||||
else
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
echo "GO=0" >> /tmp/deploy.env
|
echo "GO=0" >> /tmp/deploy.env
|
||||||
echo "MODE='skip'" >> /tmp/deploy.env
|
echo "MODE='skip'" >> /tmp/deploy.env
|
||||||
echo "ℹ️ no annotations/media change -> skip deploy"
|
echo "ℹ️ no deploy-relevant change -> skip deploy"
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Toolchain sanity + resolve COMPOSE_PROJECT_NAME
|
- name: Toolchain sanity + resolve COMPOSE_PROJECT_NAME
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user