GitHub Actions部署时怎么指定分支?
我用 GitHub Actions 自动部署静态网站,但每次 push 到 main 分支都会触发部署,我想改成只在 deploy 分支推送时才部署。改了 workflow 文件里的 on: push: branches: [deploy] 还是没生效,是不是写法不对?
下面是我的完整配置:
name: Deploy to GitHub Pages
on:
push:
branches: [deploy]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
- run: npm install && npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
branches: [deploy]语法上没问题。如果 push 到 main 还在跑,大概率是文件没提交上去,或者分支名大小写没对上。不过我看你用的 action 版本都还是 v3,这稍微有点旧了,既然要改,不如顺手升个级,顺便把代码写得更规范点。这是优化后的配置,我帮你把依赖都升到了 v4,写法也更符合现在的最佳实践:
顺便给你几个排查建议,如果这样改了还不行,检查一下这几件事:第一,确认这个 workflow 文件本身是提交在默认分支(通常是 main)上的,GitHub Actions 要求 workflow 文件必须在默认分支才能生效监听;第二,确认分支名拼写完全一致,GitHub 对大小写是敏感的;第三,我把
npm install换成了npm ci,这在 CI 环境下更干净、速度更快,算是顺手做的一点小重构。试试这个版本,应该能解决你的问题。