仅当上一步已运行时才运行 GitHub Actions 步骤

2024-04-18

我已经在 GitHub actions 中设置了一个工作流程来运行我的测试并创建测试覆盖率的工件。我的 YAML 文件的精简版本如下所示:

name: Build

on: [pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # Other steps here

      - name: Build app
      - name: Run tests
      - name: Create artifact of test coverage

      # Other steps here

问题是测试失败时不会创建工件。

我想通了if: always()条件从docs https://help.github.com/en/actions/reference/contexts-and-expression-syntax-for-github-actions#job-status-check-functions,但这也会导致此步骤在我的Build app步骤失败。我不希望这种情况发生,因为在这种情况下没有什么可存档的。

如何仅在上一步已运行(成功或失败)的情况下才运行此步骤?


一个可能更好的选择是<step>.outcome or <step>.conclusion

https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context

steps.<step id>.conclusion。完成步骤后的结果出错时继续被申请;被应用。可能的值为success, failure, 取消, or skipped。当错误继续步骤失败时,结果是失败,但最终结论是成功。

steps.<step id>.outcome之前完成的步骤的结果出错时继续被申请;被应用。可能的值为success, failure, 取消, or skipped。当错误继续步骤失败时,结果是失败,但最终结论是成功。

  - name: Build app
    id: build
    run: |
      <build command>

  - name: Run tests

  - name: Create artifact of test coverage
    if: steps.build.outcome == 'success'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅当上一步已运行时才运行 GitHub Actions 步骤 的相关文章

随机推荐

  • 奇怪的 Java 转换异常。为什么我不能将 Long 转换为 Float?

    为什么我不能将 Long 转换为 Float 我收到此错误消息 java lang ClassCastException java lang Long 无法转换为 java lang Float 为什么这是个问题 我尝试转换的数字是域 10
  • 处理程序/可运行延迟有时会产生不同步的事件

    当尝试学习如何创建延迟时 我研究并发现主要答案是使用 Handler Runnable postDelayed Handler handler new Handler final Runnable r new Runnable public
  • 什么时候使用Q_NULLPTR?

    I see Q NULLPTR在 Qt 源代码和示例中被广泛使用 但我没有找到关于它到底是什么以及何时应该使用的文档 例如在这个官方示范 http doc snapshots qt io qt5 5 6 qtserialbus can ma
  • 检测 YouTube 视频何时播放完毕

    如何在官方 YouTube Android 应用程序中检查 YouTube 视频何时播放完毕 在 LogCat 中 我看到以下内容 VideoStage MEDIA PLAYING VIDEO 有什么方法可以检测到什么时候完成吗 你可以使用
  • 最高序数枚举值

    我正在寻找从 bean 列表中的枚举属性列表计算最高序数枚举值 例如 我有 Data public class MyBean private Priority priority and public enum Priority URGENT
  • python字典日期时间作为键,keyError

    我正在尝试在 Linux 中使用 cron 运行 Python 脚本 它应该构建一个数据字典 我正在尝试使用datetime now time 作为字典中的键 但它似乎会引发错误 不可以datetimetype 可以用作Python 中的字
  • 在 ASP.NET MVC ViewModel 中存储模型 ID,安全问题

    在我的 MVC 应用程序中 我有一个页面供用户编辑其帐户详细信息 例如电子邮件地址 密码等 在我的数据库中 用户表保存此数据 主键是 UserId 在我创建的 ChangeAccountDetails 视图上 我传递了一个 ViewMode
  • delphi 文本矩形 自动换行

    我在 Delphi 7 中使用 Canvas TextRect 在屏幕上输出一些内容 我需要将文本包裹在矩形中 您需要使用带有 DT WORDBREAK 标志的 DrawText 或 DrawTextEx 请参阅中的示例
  • 为什么 Rails 将 TEXT 列截断为 65535 个字符?

    我正在使用 Ruby on Rails 将原始电子邮件保存在 MySQL 的 TEXT 列中 它不断被截断为 65535 个字符 有人知道是什么原因造成的吗 MySQL 正在运行max allowed packet 64M 使用InnoDB
  • Access 中的 Sqlite 链接表再次给出 #deleted 值

    情况 MS Access 恰好是 2010 年 使用 SQLite ODBC 驱动程序 0 997 链接到 SQLite 3 x 数据库中的表 问题 所有行中所有列中的数据值显示为 Deleted 解决方案 这是一个 回答我自己的问题 类型
  • VS Code SSH 远程连接问题

    过去一个月 我一直在使用 VS Code 并在 MacBookPro 上从家里远程连接来处理一个大学项目 但由于某种原因 它不再连接到计算机实验室服务器 不知道为什么会发生这种情况 但它今天停止工作了 我尝试重新安装 vs code 并将其
  • 是否可以在不打开 CSV 文件的情况下获取其行数?

    我有一个大小约为 1 GB 的 CSV 文件 由于我的笔记本电脑配置基本 我无法在 Excel 或 R 中打开该文件 但出于好奇 我想获取该文件中的行数文件 如果我能做到的话 我该怎么做呢 对于 Linux Unix wc l filena
  • 导致 SAXException2 的原因:“com.foo.Bar”的实例正在替换“java.lang.Object”,但“com.foo.Bar”绑定到匿名类型[重复]

    这个问题在这里已经有答案了 将现有 jaxb 同时使用 jaxb1 0 1 和 jaxb 2 0 5 应用程序 在带有 jdk5 的 JBoss 4 3 上 迁移到 jaxb 2 1 10 随 jdk6 提供 更新 jdk1 6 0 30
  • 对于单个开发人员来说,在云中存储 Mylyn 任务的最佳连接器是什么?

    我想使用 Mylyn 以任务为中心的用户界面 但我经常在两台电脑之间工作 并且不想购买任何错误跟踪软件 有人可以推荐一个适合我的情况或其他更适合的工作流程的 Mylyn 连接器吗 我可以推荐你使用福格林连接器 http www foglyn
  • 带测试的 Java 代码 - 无限循环?

    我尝试去了解人与人之间的关系 但是 当我运行单元测试时 测试会永远运行 没有得到结果 而且我的 CPU 使用率很高 有人能看出我的代码有什么问题吗 字符串关系是字符串的多行输入 格式为 A B C D where A是的父级B and C是
  • 可以处理超过 5 亿行的数据库

    我正在寻找一个可以处理的数据库 在合理的时间内在列上创建索引并提供结果选择查询在不到 3 秒的时间内 超过 5 亿行 低端机器 Core 2 CPU 6600 4GB 64 位系统 Windows VISTA 上的 Postgresql 或
  • PacketTunnelProvider 网络扩展不称为 Swift 3

    我正在尝试将 PacketTunnerProvider 网络扩展添加到我的项目中 方法 startTunnelWithOptions options String NSObject completionHandler NSError gt
  • React Router v4 基本名称和自定义历史记录

    我想为我的路由分配一个基本名称 我可以使用 BrowserRouter 来实现 不过 我还想指定自定义历史记录 以便我可以以编程方式导航我的用户 我可以用路由器做到这一点 然而我不能两者都做 是否可以扩展其中一个路由器以支持此功能或围绕其包
  • 找到正确的正则表达式

    我正在尝试为这种情况找到正确的正则表达式 1 1 0 我需要版本之间的前缀和后缀 可以是一切 字母 数字或什么都没有 我拥有的 static check version string return d d d test version 感谢
  • 仅当上一步已运行时才运行 GitHub Actions 步骤

    我已经在 GitHub actions 中设置了一个工作流程来运行我的测试并创建测试覆盖率的工件 我的 YAML 文件的精简版本如下所示 name Build on pull request jobs build runs on ubunt