GitHub环境保护规则分支校验逻辑及PR合并工作流配置问题
问题解释与解决方案
现象原因
你配置的工作流用pull_request: [closed]触发,当PR合并到main后,这个事件触发的工作流里,github.ref指向的是PR的源分支(也就是你提到的release-1.0),而非文档里说的refs/pull/<pr_number>/merge。这是PR closed事件的固有特性:不管PR是否合并,触发的工作流都会基于PR的源分支执行,环境校验会用这个源分支去匹配你设置的「仅允许main分支」规则,自然不符合要求,导致部署失败。
正确触发方式
要在PR成功合并后生成NuGet包和文档,应该改用push事件触发,指定目标分支为main,配置示例如下:
on: push: branches: [ main ]
当PR合并完成、代码推送到main分支时,这个工作流会自动触发,此时github.ref的值为refs/heads/main,完全符合环境的分支限制规则,能正常完成部署和产物生成。
内容的提问来源于stack exchange,提问作者Frode Nilsen
相关产品推荐
相关产品推荐

