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

如何依据@actions/upload-artifact@v2运行或跳过状态触发后续操作

问题原因

你的配置存在两个核心问题导致后续步骤无法触发:

  • GitHub Actions 中所有步骤默认自带 if: success() 隐式条件,只有当前面所有步骤都执行成功时才会运行当前步骤。如果你的 yarn test 执行失败触发了制品上传步骤,后续两个 echo 步骤会因为前置步骤存在失败状态直接被跳过,不会执行你写的条件判断。
  • 步骤被跳过后的 conclusion 字段值为 skipped 而不是 skip,拼写错误导致条件永远无法匹配。
修正方案

给后续两个步骤加上 always() 修饰符,强制无论前置步骤成败都执行条件判断,同时修正状态值拼写即可:

jobs:
  test:
    runs-on: ubuntu-20.04
    container: buildkite/puppeteer
    steps:
      - uses: actions/checkout@v2
      - run: yarn test
      - name: artifacts
        uses: actions/upload-artifact@v2
        id: archive
        if: failure() # Only upload if the build failed
        with:
          name: diff
          path: __diff_output__

      - name: run if nothing was archived
        if: always() && steps.archive.conclusion == 'skipped'
        run: echo not archived

      - name: run if something was archived
        if: always() && steps.archive.conclusion == 'success'
        run: echo archived

如果你担心前面步骤出现被取消的状态也触发执行,可以把 always() 替换为 !cancelled(),这样手动取消工作流时不会执行这两个步骤。

内容的提问来源于stack exchange,提问作者Fez Vrasta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:36:05