@@ -17,78 +17,78 @@ permissions:
1717 contents : write
1818
1919jobs :
20- check_changes :
21- runs-on : ubuntu-latest
22- outputs :
23- docs_changed : ${{ steps.check_files.outputs.docs }}
24- config_changed : ${{ steps.check_files.outputs.config }}
25- should_build : ${{ steps.check_files.outputs.docs == 'true' || steps.check_files.outputs.config == 'true' || github.event_name == 'workflow_dispatch' }}
26- steps :
27- - uses : actions/checkout@v4
28- with :
29- fetch-depth : 2
30-
31- - name : Check for relevant file changes
32- id : check_files
33- run : |
34- # 如果是手动触发且选择跳过检测,则直接返回 true
35- if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.skip_checks }}" = "true" ]; then
36- echo "🚀 Manual trigger with skip_checks enabled - forcing build"
37- echo "docs_changed=true" >> $GITHUB_OUTPUT
38- echo "config_changed=true" >> $GITHUB_OUTPUT
39- exit 0
40- fi
41-
42- echo "GitHub event: ${{ github.event_name }}"
43- echo "Current SHA: $(git rev-parse HEAD)"
44-
45- # 对于 PR,比较当前分支与目标分支
46- if [ "${{ github.event_name }}" = "pull_request" ]; then
47- BASE_SHA="${{ github.event.pull_request.base.sha }}"
48- HEAD_SHA="${{ github.event.pull_request.head.sha }}"
49- echo "PR mode: base=$BASE_SHA, head=$HEAD_SHA"
50- else
51- # 对于 push 事件,使用 GitHub 提供的事件数据
52- if [ -n "${{ github.event.before }}" ] && [ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]; then
53- BASE_SHA="${{ github.event.before }}"
54- HEAD_SHA="${{ github.event.after }}"
55- echo "Push mode with valid before: base=$BASE_SHA, head=$HEAD_SHA"
56- else
57- # 如果没有有效的 before SHA(比如首次提交),则与空树比较
58- BASE_SHA="4b825dc642cb6eb9a060e54bf8d69288fbee4904" # 空树
59- HEAD_SHA="${{ github.sha }}"
60- echo "Push mode (initial commit): base=empty-tree, head=$HEAD_SHA"
61- fi
62- fi
63-
64- echo "Comparing $BASE_SHA..$HEAD_SHA"
65-
66- # 使用 git diff 检查变更
67- changed_files=$(git diff --name-only $BASE_SHA $HEAD_SHA 2>/dev/null || echo "")
68- echo "All changed files:"
69- echo "$changed_files"
70-
71- # 检查 zensical.toml 是否变更
72- if echo "$changed_files" | grep -q "zensical.toml"; then
73- echo "config_changed=true" >> $GITHUB_OUTPUT
74- echo "✅ zensical.toml changed"
75- else
76- echo "config_changed=false" >> $GITHUB_OUTPUT
77- echo "❌ zensical.toml not changed"
78- fi
79-
80- # 检查 /docs/ 目录下文件是否变更
81- if echo "$changed_files" | grep -q "^docs/"; then
82- echo "docs_changed=true" >> $GITHUB_OUTPUT
83- echo "✅ docs/ directory changed"
84- else
85- echo "docs_changed=false" >> $GITHUB_OUTPUT
86- echo "❌ docs/ directory not changed"
87- fi
20+ # check_changes:
21+ # runs-on: ubuntu-latest
22+ # outputs:
23+ # docs_changed: ${{ steps.check_files.outputs.docs }}
24+ # config_changed: ${{ steps.check_files.outputs.config }}
25+ # should_build: ${{ steps.check_files.outputs.docs == 'true' || steps.check_files.outputs.config == 'true' || github.event_name == 'workflow_dispatch' }}
26+ # steps:
27+ # - uses: actions/checkout@v4
28+ # with:
29+ # fetch-depth: 2
30+ #
31+ # - name: Check for relevant file changes
32+ # id: check_files
33+ # run: |
34+ # # 如果是手动触发且选择跳过检测,则直接返回 true
35+ # if [ "${{ github.event_name }}" = "workflow_dispatch" ] && [ "${{ github.event.inputs.skip_checks }}" = "true" ]; then
36+ # echo "🚀 Manual trigger with skip_checks enabled - forcing build"
37+ # echo "docs_changed=true" >> $GITHUB_OUTPUT
38+ # echo "config_changed=true" >> $GITHUB_OUTPUT
39+ # exit 0
40+ # fi
41+ #
42+ # echo "GitHub event: ${{ github.event_name }}"
43+ # echo "Current SHA: $(git rev-parse HEAD)"
44+ #
45+ # # 对于 PR,比较当前分支与目标分支
46+ # if [ "${{ github.event_name }}" = "pull_request" ]; then
47+ # BASE_SHA="${{ github.event.pull_request.base.sha }}"
48+ # HEAD_SHA="${{ github.event.pull_request.head.sha }}"
49+ # echo "PR mode: base=$BASE_SHA, head=$HEAD_SHA"
50+ # else
51+ # # 对于 push 事件,使用 GitHub 提供的事件数据
52+ # if [ -n "${{ github.event.before }}" ] && [ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]; then
53+ # BASE_SHA="${{ github.event.before }}"
54+ # HEAD_SHA="${{ github.event.after }}"
55+ # echo "Push mode with valid before: base=$BASE_SHA, head=$HEAD_SHA"
56+ # else
57+ # # 如果没有有效的 before SHA(比如首次提交),则与空树比较
58+ # BASE_SHA="4b825dc642cb6eb9a060e54bf8d69288fbee4904" # 空树
59+ # HEAD_SHA="${{ github.sha }}"
60+ # echo "Push mode (initial commit): base=empty-tree, head=$HEAD_SHA"
61+ # fi
62+ # fi
63+ #
64+ # echo "Comparing $BASE_SHA..$HEAD_SHA"
65+ #
66+ # # 使用 git diff 检查变更
67+ # changed_files=$(git diff --name-only $BASE_SHA $HEAD_SHA 2>/dev/null || echo "")
68+ # echo "All changed files:"
69+ # echo "$changed_files"
70+ #
71+ # # 检查 zensical.toml 是否变更
72+ # if echo "$changed_files" | grep -q "zensical.toml"; then
73+ # echo "config_changed=true" >> $GITHUB_OUTPUT
74+ # echo "✅ zensical.toml changed"
75+ # else
76+ # echo "config_changed=false" >> $GITHUB_OUTPUT
77+ # echo "❌ zensical.toml not changed"
78+ # fi
79+ #
80+ # # 检查 /docs/ 目录下文件是否变更
81+ # if echo "$changed_files" | grep -q "^docs/"; then
82+ # echo "docs_changed=true" >> $GITHUB_OUTPUT
83+ # echo "✅ docs/ directory changed"
84+ # else
85+ # echo "docs_changed=false" >> $GITHUB_OUTPUT
86+ # echo "❌ docs/ directory not changed"
87+ # fi
8888
8989 build :
90- needs : check_changes
91- if : needs.check_changes.outputs.should_build == 'true'
90+ # needs: check_changes
91+ # if: needs.check_changes.outputs.should_build == 'true'
9292 runs-on : ubuntu-latest
9393 outputs :
9494 commit_hash : ${{ steps.build-info.outputs.commit_hash }}
@@ -142,8 +142,11 @@ jobs:
142142 retention-days : 1
143143
144144 deploy_build :
145- needs : [check_changes, build]
146- if : needs.check_changes.outputs.should_build == 'true' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
145+ # needs: [check_changes, build]
146+ needs : [build]
147+ # if: needs.check_changes.outputs.should_build == 'true' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
148+ if : github.event_name == 'push' || github.event_name == 'workflow_dispatch'
149+
147150 runs-on : ubuntu-latest
148151 steps :
149152 - uses : actions/checkout@v4
@@ -159,25 +162,25 @@ jobs:
159162 id : check_build_changes
160163 run : |
161164 # 如果是手动触发,跳过内容检查,强制部署
162- if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
163- echo "🚀 Manual trigger - forcing deployment to build branch"
164- echo "no_changes=false" >> $GITHUB_OUTPUT
165- exit 0
166- fi
165+ # if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
166+ # echo "🚀 Manual trigger - forcing deployment to build branch"
167+ # echo "no_changes=false" >> $GITHUB_OUTPUT
168+ # exit 0
169+ # fi
167170
168171 # 检查 build 分支是否存在
169- if git ls-remote --exit-code --heads origin build; then
170- echo "Build branch exists"
171- git fetch origin build
172- git worktree add ../build-branch build
172+ # if git ls-remote --exit-code --heads origin build; then
173+ # echo "Build branch exists"
174+ # git fetch origin build
175+ # git worktree add ../build-branch build
173176 # 比较文件差异
174- if diff -qr ./site ../build-branch > /dev/null 2>&1; then
175- echo "no_changes=true" >> $GITHUB_OUTPUT
176- echo "📝 Build branch content unchanged, skipping deployment"
177- else
178- echo "no_changes=false" >> $GITHUB_OUTPUT
179- echo "🔄 Build branch content changed, proceeding with deployment"
180- fi
177+ # if diff -qr ./site ../build-branch > /dev/null 2>&1; then
178+ # echo "no_changes=true" >> $GITHUB_OUTPUT
179+ # echo "📝 Build branch content unchanged, skipping deployment"
180+ # else
181+ # echo "no_changes=false" >> $GITHUB_OUTPUT
182+ # echo "🔄 Build branch content changed, proceeding with deployment"
183+ # fi
181184 # 清理工作树
182185 git worktree remove ../build-branch
183186 else
@@ -186,7 +189,7 @@ jobs:
186189 fi
187190
188191 - name : Deploy to build branch
189- if : steps.check_build_changes.outputs.no_changes == 'false'
192+ # if: steps.check_build_changes.outputs.no_changes == 'false'
190193 run : |
191194 # 修复:使用更简单直接的方法部署到 build 分支
192195 cd $GITHUB_WORKSPACE
@@ -220,12 +223,15 @@ jobs:
220223 echo "✅ Successfully deployed to build branch"
221224
222225 - name : Skip deployment (no changes)
223- if : steps.check_build_changes.outputs.no_changes == 'true'
226+ # if: steps.check_build_changes.outputs.no_changes == 'true'
224227 run : echo "🚫 Skipping build branch deployment - no content changes detected"
225228
226229 deploy_pages :
227- needs : [check_changes, build]
228- if : needs.check_changes.outputs.should_build == 'true' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
230+ needs : [build]
231+ # needs: [check_changes, build]
232+ # if: needs.check_changes.outputs.should_build == 'true' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
233+ if : github.event_name == 'push' || github.event_name == 'workflow_dispatch'
234+
229235 runs-on : ubuntu-latest
230236 steps :
231237 - uses : actions/checkout@v4
@@ -241,25 +247,25 @@ jobs:
241247 id : check_pages_changes
242248 run : |
243249 # 如果是手动触发,跳过内容检查,强制部署
244- if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
245- echo "🚀 Manual trigger - forcing deployment to gh-pages"
246- echo "no_changes=false" >> $GITHUB_OUTPUT
247- exit 0
248- fi
250+ # if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
251+ # echo "🚀 Manual trigger - forcing deployment to gh-pages"
252+ # echo "no_changes=false" >> $GITHUB_OUTPUT
253+ # exit 0
254+ # fi
249255
250256 # 检查 gh-pages 分支是否存在
251- if git ls-remote --exit-code --heads origin gh-pages; then
252- echo "gh-pages branch exists"
253- git fetch origin gh-pages
254- git worktree add ../gh-pages-branch gh-pages
257+ # if git ls-remote --exit-code --heads origin gh-pages; then
258+ # echo "gh-pages branch exists"
259+ # git fetch origin gh-pages
260+ # git worktree add ../gh-pages-branch gh-pages
255261 # 比较文件差异(排除CNAME文件)
256- if diff -qr --exclude=CNAME ./site ../gh-pages-branch > /dev/null 2>&1; then
257- echo "no_changes=true" >> $GITHUB_OUTPUT
258- echo "📝 gh-pages content unchanged, skipping deployment"
259- else
260- echo "no_changes=false" >> $GITHUB_OUTPUT
261- echo "🔄 gh-pages content changed, proceeding with deployment"
262- fi
262+ # if diff -qr --exclude=CNAME ./site ../gh-pages-branch > /dev/null 2>&1; then
263+ # echo "no_changes=true" >> $GITHUB_OUTPUT
264+ # echo "📝 gh-pages content unchanged, skipping deployment"
265+ # else
266+ # echo "no_changes=false" >> $GITHUB_OUTPUT
267+ # echo "🔄 gh-pages content changed, proceeding with deployment"
268+ # fi
263269 # 清理工作树
264270 git worktree remove ../gh-pages-branch
265271 else
@@ -268,7 +274,7 @@ jobs:
268274 fi
269275
270276 - name : Deploy to gh-pages branch
271- if : steps.check_pages_changes.outputs.no_changes == 'false'
277+ # if: steps.check_pages_changes.outputs.no_changes == 'false'
272278 run : |
273279 # 修复:使用更简单直接的方法部署到 gh-pages 分支
274280 cd $GITHUB_WORKSPACE
@@ -304,6 +310,6 @@ jobs:
304310 git push -f origin gh-pages
305311 echo "✅ Successfully deployed to gh-pages branch"
306312
307- - name : Skip deployment (no changes)
308- if : steps.check_pages_changes.outputs.no_changes == 'true'
309- run : echo "🚫 Skipping gh-pages deployment - no content changes detected"
313+ # - name: Skip deployment (no changes)
314+ # if: steps.check_pages_changes.outputs.no_changes == 'true'
315+ # run: echo "🚫 Skipping gh-pages deployment - no content changes detected"
0 commit comments