You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无任务执行时将GitHub Actions工作流状态设为skipped?

如何在GitHub Actions无任务时将工作流标记为Skipped

完全可以实现,核心思路是通过前置检查判断是否需要执行任务,若无需执行则调用GitHub API将工作流运行状态设为skipped,具体实现如下:

实现步骤与示例代码

jobs:
  check-and-execute:
    runs-on: ubuntu-latest
    steps:
      - name: 检查是否需要执行任务
        id: task-check
        run: |
          # 替换为你的实际检查逻辑(比如判断周期、任务存在性等)
          # 示例:模拟每两周触发一次的判断逻辑
          CURRENT_WEEK=$(date +%V)
          if [ $((CURRENT_WEEK % 2)) -eq 0 ]; then
            echo "needs_execution=true" >> "$GITHUB_OUTPUT"
          else
            echo "needs_execution=false" >> "$GITHUB_OUTPUT"
          fi

      - name: 标记工作流为Skipped(无任务时)
        if: steps.task-check.outputs.needs_execution == 'false'
        uses: actions/github-script@v6
        with:
          script: |
            await github.rest.actions.updateWorkflowRun({
              owner: context.repo.owner,
              repo: context.repo.repo,
              run_id: context.runId,
              status: 'completed',
              conclusion: 'skipped'
            })
            process.exit(0)

      - name: 执行任务(有任务时)
        if: steps.task-check.outputs.needs_execution == 'true'
        run: |
          # 替换为你的任务执行逻辑
          echo "开始执行周期性任务..."

关键说明

  • 权限说明:默认的GITHUB_TOKEN已具备更新工作流运行状态的权限,无需额外配置。
  • 状态区分:执行上述逻辑后,无任务的工作流会在GitHub的工作流运行列表中直接显示为Skipped状态,与执行任务后的Success状态清晰区分。
  • 检查逻辑:需根据你的实际需求替换task-check步骤中的判断代码,确保准确识别是否需要执行任务。

内容的提问来源于stack exchange,提问作者Erik B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:33:14