GitHub Actions 里怎么只在 main 分支推送时才触发构建?
我写了个 workflow,但每次随便推个分支都跑 CI,太浪费了。我想让它只在往 main 分支 push 的时候才执行,但改了几次都不生效。
我试过加 branches: [main],也试过用 if: github.ref == 'refs/heads/main',可还是其他分支一推就触发。是不是我写的位置不对?
name: Build and Deploy
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: echo "Building..."
试试这样改:
注意 branches 前面要缩进两个空格,main 前面再加两个空格。这个配置的意思是只监听 main 分支的 push 事件。
有时候 YAML 格式要求还挺严格的,我之前也被这坑过。如果还是不行,检查一下是不是用了 workflow_dispatch 这种触发方式,那个会忽略分支限制。
顺便说一句,用 if 条件判断的方式也可以,不过我觉得直接在触发条件里限制分支更清晰一些。反正 CI 跑多了也挺烦人的,浪费时间还占资源。