如何强制GitHub使用当前分支/PR中最新的Workflow文件?
让GitHub Actions用PR分支的Workflow文件版本
当然可以实现,而且GitHub本身就支持这个逻辑,关键是要配置正确的触发事件:
核心是用
pull_request事件触发Workflow,而非pull_request_target
当你把Workflow的触发条件设为pull_request时,GitHub Actions会自动拉取当前PR分支的完整代码,包括你在PR里修改后的.github/workflows/下的配置文件,执行的就是你更新后的校验逻辑。举个简单的配置示例:
name: PR代码校验 on: pull_request: branches: [main] # 指定只对目标为main的PR触发 jobs: validate: runs-on: ubuntu-latest steps: - name: 拉取PR分支代码 uses: actions/checkout@v4 # 这里写你的校验步骤,比如代码lint、构建测试等别踩
pull_request_target的坑
这个事件是给需要访问主分支敏感资源的场景设计的,它会默认使用主分支(比如main)里的旧Workflow文件执行,完全不符合你的需求,所以除非特殊情况,绝对不要用这个事件。注意前提
如果是第一次在PR里新增某个Workflow(主分支里之前没有这个文件),那这个Workflow不会被触发——GitHub要求Workflow必须先存在于默认分支才能被识别执行。但只要主分支已经有了该Workflow,后续PR里修改它,就会自动用PR分支的版本。
验证起来也简单:提交修改了Workflow的PR后,去Actions页面看运行的任务日志,检查步骤逻辑是否和你PR里改的一致就行。
内容的提问来源于stack exchange,提问作者yen
相关产品推荐
相关产品推荐

