GitHub Actions中限制Run Script工作流仅单实例运行的问题
限制GitHub Actions工作流仅运行单个实例并取消多余待处理任务
要实现让名为“Run Script”的GitHub Actions工作流同时仅运行一个实例,且触发多次时仅保留1个待处理任务、取消其余请求的需求,只需调整concurrency配置,添加cancel-waiting: true参数即可。
修改后的完整工作流配置如下:
name: Run Script on: workflow_dispatch: concurrency: group: my-concurrency-group cancel-in-progress: false cancel-waiting: true jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Installing python uses: actions/setup-python@v4 with: python-version: '3.9' cache: 'pip'
核心配置解析
concurrency.group: 定义并发组my-concurrency-group,所有归属该组的工作流实例会受到统一的并发规则约束。cancel-in-progress: false: 保持当前运行中的工作流实例不被中断,确保正在执行的任务能正常完成。cancel-waiting: true: 开启后,当新的工作流请求进入待处理队列时,会自动取消该组内所有更早的待处理请求,仅保留最新的一个待处理任务。这正是你需要的——触发5次时,仅1个任务处于待处理状态,其余被取消,且会返回报错信息:Canceling since a higher priority waiting request for 'my-concurrency-group' exists。
内容的提问来源于stack exchange,提问作者ujjwal
相关产品推荐
相关产品推荐

