如何将ACTION workflow设置为异步执行?
Action Workflow异步执行操作指南
首先明确:已创建的同步执行Action Workflow支持修改为异步执行,具体可根据你的使用场景选择对应操作方案:
场景1:Workflow作为前置操作的阻塞检查项
这种场景下的同步逻辑是因为Workflow被配置为了对应事件的必填阻塞项,修改方法如下:
- 进入仓库的「Settings」→「Branches」页面,找到对应分支的保护规则
- 移除该Workflow在「Required status checks to pass before merging」列表中的配置
- 保存后该Workflow触发后就会转为后台异步执行,不会再阻塞对应操作(比如PR合并、推送校验等)
场景2:父Workflow嵌套调用子Workflow
默认的workflow_call调用逻辑为同步阻塞等待子Workflow执行完成,修改方法为在调用配置中添加wait: false参数,示例配置如下:
jobs: async-call: uses: ./.github/workflows/你的子Workflow文件名.yml with: 传入参数名: 参数值 wait: false # 新增该配置即可实现异步调用,父Workflow不会等待子Workflow返回结果
场景3:仅需要Workflow内单个步骤异步执行
如果不需要整个Workflow异步,仅需要某一个运行步骤转为后台异步执行,无需等待该步骤完成就执行后续步骤,可以在命令中添加后台运行标识,示例如下:
steps: - name: 异步运行自定义脚本 run: nohup ./自定义脚本路径.sh > run.log 2>&1 &
- 其中
nohup用来保证步骤进程不会因为会话断开被终止,&标识将进程放到后台运行
内容的提问来源于stack exchange,提问作者Damkulul
相关产品推荐
相关产品推荐

