在您的 IDE 中使用 Workflows JSON 架构

如需在创建工作流时提供语法支持,您可以在 Visual Studio Code (VS Code) 或 Intellij IDEA 等集成开发环境 (IDE) 中使用 Workflows JSON 架构。语法支持包括自动补全、验证和内嵌文档。该架构还可以集成到 CI/CD 流程中。

Workflows JSON 架构是用 JSON 架构编写的,这是一种声明式语言,可用于注释和验证 JSON 文档。架构源托管在 SchemaStore.org 上,这是一个架构代码库,用于存储基于 JSON 的常见配置文件。请注意,SchemaStore.org 中的架构也可以应用于 YAML 文件。

根据您希望使用的 IDE 或编辑器,您可以安装插件或应用内置支持以使用 Workflows 架构。架构可以存储在项目根目录下本地,也可以通过其在 SchemaStore.org 中的资源网址指定。

工作流定义文件的文件名格式

无论您使用哪种 IDE 或编辑器,如果您要使用插件或扩展程序自动应用 SchemaStore.org 中的 Workflows 架构,则工作流定义文件的文件名格式必须如下所示:

  • workflows.json
  • workflows.yaml
  • workflows.yml
  • *.workflows.json
  • *.workflows.yaml
  • *.workflows.yml

如果您使用的是 VS Code,或者使用内置支持来应用 Workflows 架构,则可以替换文件名格式。

限制

Workflows JSON 架构中的语法支持侧重于定义工作流的关键字的自动补全。该架构支持某些标准库函数的自动补全功能,但对动态变量名称、表达式和其他表达式帮助程序的支持有限。该架构还假定工作流已完成,并且不考虑任何后期处理,例如子工作流的组合。

为避免 JSON 架构冲突,我们建议您不要使用多个扩展程序或插件来获得 Workflows 语法支持。

在 VS Code 中关联 Workflows JSON 架构

VS Code 是一个在桌面上运行的源代码编辑器,适用于 Windows、macOS 和 Linux。它内置了对多种语言的支持,并支持针对其他语言和运行时的扩展。如需在计算机上安装和设置 VS Code,请参阅 Visual Studio Code

您可以通过以下几种方式在 VS Code 中关联 Workflows JSON 架构。

使用 Cloud Code 在 YAML 中创建工作流

Cloud Code 是一组 IDE 插件,可让您更轻松地创建、部署应用并将其与 Google Cloud 集成。

如果您使用 VS Code 作为 IDE,则可以在编写 YAML 工作流时使用 Cloud Code,Cloud Code 会自动从 SchemaStore.org 拉取 Workflows JSON 架构。如需确认架构是否按预期应用,请在 VS Code 工作区或文件夹中创建 YAML 工作流,并确认 Workflows 关键字正在自动填充。

Cloud Code 还支持离线 Google Cloud 架构,可供具有网络或 IDE 限制的用户使用。如需了解详情,请参阅以下内容:

使用 RedHat 提供的 YAML 在 YAML 中创建工作流

作为使用 Cloud Code for VS Code 扩展程序的替代方案,您可以使用 YAML by RedHat 扩展程序。此扩展程序提供 YAML 语言支持,并内置了 Kubernetes 语法支持。它会自动从 SchemaStore.org 中拉取 Workflows JSON 架构。

安装扩展程序后,创建一个 YAML 工作流。该文件的顶部应该有一个 Google Cloud Workflows 配置文件 (workflows.json) 链接。如果您点击该链接,系统会在 VS Code 编辑器中打开 Workflows JSON 架构。

替换文件名格式

使用 Cloud Code 或 RedHat 提供的 YAML 在 YAML 中创建工作流时,您可以替换应用 Workflows 架构的默认文件名格式。您必须在 settings.json 文件中指定映射。设置以 JSON 格式编写,您可以通过在 VS Code 编辑器中打开此文件来直接查看和修改此文件。

例如,如果您使用的是 Cloud Code for VS Code 扩展程序,则可以在属性 cloudcode.yaml.schemas 下映射文件名格式:

{
    "cloudcode.yaml.schemas": {
        "https://json.schemastore.org/workflows.json": [
            "GLOB_PATTERN.yaml",
            "my-special-workflow.yaml"
        ]
    }
}

或者,如果您使用的是 YAML by RedHat 扩展程序,请在属性 yaml.schemas 下映射文件名格式:

{
    "yaml.schemas": {
        "https://json.schemastore.org/workflows.json": [
            "GLOB_PATTERN.yaml",
            "my-special-workflow.yaml"
        ]
    }
}

左侧的架构应用于右侧的 glob 模式;每个架构使用 JSON 数组与多个 glob 相关联。您的架构必须是相对路径,而不是绝对路径。您的架构可以是本地架构,也可以是在线架构。

使用内置支持在 JSON 中创建工作流

通过在 settings.json 文件中的 json.schemas 属性下指定映射,您可以使用 VS Code 中的内置支持来关联 Workflows JSON 架构。您可以在 VS Code 编辑器中打开此文件,直接查看和修改此文件。

例如,如需从 SchemaStore.org 拉取 Workflows JSON 架构,请执行以下操作:

{
    "json.schemas": [
        {
            "description": "SchemaStore.org",
            "fileMatch": [
                "workflows.json",
                "*.workflows.json"
            ],
            "url": "https://json.schemastore.org/workflows.json"
         }
    ]
}

左侧的架构应用于右侧的 glob 模式;一个架构使用 JSON 数组与多个 glob 相关联。您的架构必须是相对路径,而不是绝对路径。您的架构可以是本地架构,也可以是在线架构。

您可以替换文件名格式。例如:

{
    "json.schemas": [
        {
            "description": "Workflows schema",
            "fileMatch": [
                "GLOB_PATTERN.json",
                "FILE_NAME.json"
            ],
            "url": "https://json.schemastore.org/workflows.json"
        }
    ]
}

如需了解详情,请参阅使用 Visual Studio Code 修改 JSON

在 IntelliJ IDEA 中关联 Workflows JSON 架构

IntelliJ IDEA 是用于 Java 虚拟机语言的跨平台 IDE。通过插件支持其他语言。如需在计算机上安装和设置 IntelliJ IDEA,请参阅安装 IntelliJ IDEA

以下是关联 IntelliJ IDEA 中的 Workflows JSON 架构的各种方法。

使用 Cloud Code 在 YAML 或 JSON 中创建工作流

Cloud Code 是一组 IDE 插件,可让您更轻松地创建、部署应用并将其与 Google Cloud 集成。

如果您使用 IntelliJ 作为 IDE,则可以在使用 YAML 或 JSON 编写工作流时使用 Cloud Code,Cloud Code 会自动从 SchemaStore.org 拉取 Workflows JSON 架构。Cloud Code 还支持离线 Google Cloud 架构,可供具有网络或 IDE 限制的用户使用。如需了解详情,请参阅以下资源:

使用内置支持在 YAML 或 JSON 中创建工作流

IntelliJ IDEA 可自动下载和使用 SchemaStore.org 中的架构。 您可以下载 Workflows JSON 架构并将其存储在项目根目录下,或指定资源的网址,以便 IntelliJ IDEA 自动下载架构。如需映射架构,请按照说明配置自定义 JSON 架构

默认情况下,系统会启用从 SchemaStore.org 自动下载架构,并根据架构验证默认文件名格式。

如需替换默认文件格式,请在通过设置对话框导航到 JSON 架构映射后,执行以下操作:

  1. 名称字段中,输入 Workflows 架构
  2. 架构文件或网址字段中,输入 https://json.schemastore.org/workflows.json
  3. 架构版本列表中,选择 JSON 架构版本 7
  4. 添加您选择的文件路径模式

通过 jsonSchema.xml 映射架构

您可以通过 https://github.com/JetBrains/intellij-community 获取 IntelliJ IDEA 社区版源代码。

您可以通过向 jsonSchemas.xml 添加条目来映射 IntelliJ IDEA 编辑器的 Workflows JSON 架构。

为 CI/CD 流程添加 Workflows 语法验证功能

向持续集成、交付和部署 (CI/CD) 流程添加语法验证有助于减少集成、测试、交付和部署期间的错误。

例如,您可以使用 ajv-cli 工具根据 Workflows JSON 架构验证数据。请注意,安装该工具时,还需要安装 ajv-formats。例如:

npm install -g ajv-cli ajv-formats

其他可能有用的工具:

  • MegaLinter v8r - MegaLinter 是一款适用于 CI/CD 工作流的开源工具;如果 JSON/YAML 文件在 SchemaStore.org 上定义了匹配架构,v8r 会检查它们的有效性。
  • JSON 验证器 - 按编程语言或开发平台分类的 JSON 验证工具。

后续步骤