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

如何仅在GitHub Actions前一步执行后运行当前步骤?

解决方案

你可以通过给「Run tests」步骤添加唯一ID,结合GitHub Actions的步骤上下文来判断该步骤是否实际执行过(而非被跳过),这样就能精准控制:仅在测试步骤执行后(无论成功或失败)才生成覆盖率Artifact,同时避免在构建步骤失败时执行该操作。

具体操作分两步:

  1. 给「Run tests」步骤添加id属性,方便后续引用该步骤的状态
  2. 在「Create artifact of test coverage」步骤中设置针对性的if条件

修改后的完整YAML示例如下:

name: Build
on: [pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # 其他步骤
      - name: Build app
        # 这里保留你的构建命令,例如:run: npm run build
      - name: Run tests
        id: run-tests  # 新增步骤ID
        # 这里保留你的测试命令,例如:run: npm test --coverage
      - name: Create artifact of test coverage
        if: steps.run-tests.outcome != 'skipped'  # 新增条件判断
        # 这里保留你的归档命令,例如:
        # uses: actions/upload-artifact@v4
        # with:
        #   name: test-coverage
        #   path: coverage/
      # 其他步骤

逻辑说明

  • steps.run-tests.outcome会返回该步骤的执行状态,可选值包括success、failure、cancelled、skipped
  • 如果「Build app」步骤失败,后续的「Run tests」步骤会被自动标记为skipped(不会实际执行),此时steps.run-tests.outcome != 'skipped'条件不成立,归档步骤就不会运行
  • 只要「Run tests」步骤实际执行过(不管测试最终成功还是失败),outcome就会是success或failure,条件成立,归档步骤正常运行,生成对应的测试覆盖率Artifact

内容的提问来源于stack exchange,提问作者Duncan Lukkenaer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:42:31