如何配置GitHub Actions仅在main分支变更或PR合并后发布包?
问题描述
我正在尝试用GitHub Actions构建持续部署(CD)工作流,这是一个Clojure/ClojureScript项目,作为动态Web应用的依赖项。我希望每当project.clj文件变更时自动将Maven包发布到GitHub Packages——因为这个文件存储项目版本,修改它通常意味着要发布新版本。
目前我已经接近实现目标,但发现仅提交Pull Request(PR)时也会触发包发布。我希望只在以下两种情况触发CD:
- 直接修改
main分支后; - Pull Request合并后;
不想在仅提交PR时触发。
我的cd.yml配置如下:
name: 'cd' on: workflow_dispatch: push: branches: - main paths: - 'project.clj' pull_request: paths: - 'project.clj'
请问需要如何修改工作流配置?仅删除最后三行即可解决问题吗?
解决方案
是的,删除配置里的最后三行(即pull_request相关的触发规则)就能解决问题。
原因如下:
- PR合并到
main分支时,本质是向main分支发起了一次push操作,这会触发已配置的push规则(针对main分支且project.clj变更),覆盖你需要的第二种触发场景。 - 直接向
main分支提交修改的场景,原本就由现有的push规则覆盖。 - 删除
pull_request规则后,PR提交(未合并)时不会再触发CD工作流,避免不必要的包发布。
修改后的完整配置:
name: 'cd' on: workflow_dispatch: push: branches: - main paths: - 'project.clj'
内容的提问来源于stack exchange,提问作者Pedro Delfino
相关产品推荐
相关产品推荐

