GitHub Actions:更智能的编辑、更清晰的调试和新的 case 函数

发布: (2026年1月30日 GMT+8 01:37)
5 分钟阅读

Source: GitHub Actions Blog

我们已经发布了多项改进,使 GitHub Actions 更易于编写、验证和排查工作流逻辑,尤其是在使用 if: 条件控制运行内容时。

  • 全新 case 函数,实现更具表现力的条件逻辑
  • 扩展表达式日志,帮助你 了解作业被跳过的原因
  • 在 VS Code、网页编辑器及其他 IDE 中提供更好的工作流编写体验
  • action.yml 文件提供编辑器支持
  • 改进 if: 条件的处理

使用 case 函数编写更具表现力的表达式

GitHub Actions 表达式现在支持 case 函数,可执行真正的逻辑运算,类似于 SQL 中的 case 表达式。它让你能够处理多种逻辑操作,包括 if‑elseif‑else ifif‑else if‑else 以及 switch‑case。该函数使用布尔值,避免了 当前变通方案 的限制。更多信息请参阅 表达式文档

了解作业被跳过的原因

当作业因 if: 条件被跳过时,你现在可以准确看到原因。作业日志会显示原始表达式以及在运行时展开后的版本,其中包含所有上下文的实际值。获取这些日志的详细方法请参阅 作业条件日志文档

跨编辑器的更佳工作流编写体验

我们已将 GitHub Actions VS Code 扩展中的增强工作流编写体验移植到网页编辑器和其他 IDE。改进包括:

  • 更智能的自动完成:基于上下文的表达式、事件负载、needs 输出和 matrix 值补全。
  • 表达式校验:捕获无效的上下文访问、未识别的函数以及 if 条件中的文字文本。
  • 悬停文档:在行内查看函数签名和上下文描述。
  • 独立二进制文件:在 NeoVim、Emacs、Sublime 或其他编辑器中使用语言服务。
  • 以及内联 cron 调度提示、更智能的语法补全等功能。

action.yml 文件的编辑器支持

动作作者现在也能获得与工作流作者相同的编辑体验。当你在 VS Code、网页编辑器或任何使用独立二进制文件的编辑器中打开 action.yml 文件时,你将得到:

  • 自动完成:针对动作元数据字段(namedescriptioninputsoutputsruns 等)。
  • 上下文感知的 runs 完成:根据你的动作类型(Node.js、复合或 Docker)进行过滤。
  • 校验:检查模式合规性、必填字段和表达式。
  • 脚手架代码片段:快速启动新动作。

改进 if: 条件的处理

我们添加了改进,以捕获 if: 条件和其他工作流字段中的常见陷阱。具体包括:

  • if 条件中出现 ${{ }} 标记之外的文本,这会导致整个表达式成为字符串(始终为真)。现在 VS Code 和网页编辑器的编辑器校验会捕获此问题,并在工作流运行时生成注释。
  • 无效的 format 字符串,也会被编辑器校验捕获。
  • 自动去除尾随换行符。

实际意义

  • 减少因始终为真的字符串导致的意外作业和步骤。
  • 更早获得对格式错误条件的反馈。

从编写到调试,你的工作流体验变得更加顺畅。

加入 GitHub Community 的讨论吧。

Back to Blog

相关文章

阅读更多 »