能否在GitHub Actions的concurrency中添加分支条件判断?
GitHub Actions中为concurrency配置添加条件判断的方法
当然可以实现,你只需要利用GitHub Actions的表达式语法,给concurrency的参数设置条件判断即可。
针对你的需求——仅在分支不是master时启用并发控制(取消同分支正在运行的任务),master分支不启用该限制,完整配置如下:
name: Build on: push: concurrency: # 非master分支用当前分支引用作为并发组名,master分支设为空字符串(不启用并发组) group: ${{ github.ref != 'refs/heads/master' && github.ref || '' }} # 仅非master分支启用取消正在进行的任务 cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
配置说明:
group字段:通过逻辑表达式判断分支,当分支不是master时,用当前分支的引用(github.ref)作为并发组标识;如果是master分支,将组名设为空字符串,不会触发任何并发限制。cancel-in-progress字段:直接通过表达式返回布尔值,仅在非master分支时设为true,自动取消该分支之前未完成的同名工作流任务。
这样配置后,master分支的推送会正常触发工作流且不受并发限制,功能分支的推送则会自动终止同分支未完成的工作流,避免资源浪费。
内容的提问来源于stack exchange,提问作者Aseem
相关产品推荐
相关产品推荐

