GitHub Actions部署时怎么指定分支?

宇文佼佼 阅读 2

我用 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
我来解答 赞 6 收藏
二维码
手机扫码查看
1 条解答
码农艺涵
你的配置写法本身其实是对的,branches: [deploy] 语法上没问题。如果 push 到 main 还在跑,大概率是文件没提交上去,或者分支名大小写没对上。不过我看你用的 action 版本都还是 v3,这稍微有点旧了,既然要改,不如顺手升个级,顺便把代码写得更规范点。

这是优化后的配置,我帮你把依赖都升到了 v4,写法也更符合现在的最佳实践:

name: Deploy to GitHub Pages

on:
push:
branches:
- deploy

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install and Build
run: npm ci && npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist


顺便给你几个排查建议,如果这样改了还不行,检查一下这几件事:第一,确认这个 workflow 文件本身是提交在默认分支(通常是 main)上的,GitHub Actions 要求 workflow 文件必须在默认分支才能生效监听;第二,确认分支名拼写完全一致,GitHub 对大小写是敏感的;第三,我把 npm install 换成了 npm ci,这在 CI 环境下更干净、速度更快,算是顺手做的一点小重构。试试这个版本,应该能解决你的问题。
点赞
2026-03-04 15:17