Usa el esquema JSON de Workflows en tu IDE

Para proporcionar compatibilidad con la sintaxis cuando creas un flujo de trabajo, puedes usar el esquema JSON de Workflows en un entorno de desarrollo integrado (IDE) como Visual Studio Code (VS Code) o Intellij IDEA. La compatibilidad con la sintaxis incluye el autocompletado, la validación y la documentación intercalada. El esquema también se puede integrar en tus procesos de CI/CD.

El esquema JSON de Workflows está escrito en JSON Schema, un lenguaje declarativo que te permite anotar y validar documentos JSON. La fuente del esquema se aloja en SchemaStore.org, un repositorio de esquemas para archivos de configuración comunes basados en JSON. Ten en cuenta que los esquemas de SchemaStore.org también se pueden aplicar a los archivos YAML.

Según el IDE o editor que prefieras usar, puedes instalar un complemento o aplicar compatibilidad integrada para usar el esquema de Workflows. El esquema se puede almacenar de forma local en la raíz de tu proyecto o se puede especificar a través de su URL de recursos en SchemaStore.org.

Formato de nombre de archivo para los archivos de definición de flujo de trabajo

Independientemente del IDE o editor que uses, si usas un complemento o una extensión para aplicar automáticamente el esquema de Workflows de SchemaStore.org, el formato del nombre de archivo de tu archivo de definición de flujo de trabajo debe ser el siguiente:

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

Si usas VS Code o la compatibilidad integrada para aplicar el esquema de Workflows, puedes anular los formatos de nombres de archivo.

Limitaciones

La compatibilidad con la sintaxis a través del esquema JSON de Workflows se enfoca en la finalización automática de las palabras clave que definen un flujo de trabajo. El esquema admite la finalización automática para algunas funciones de biblioteca estándar, pero la compatibilidad es limitada para los nombres de variables dinámicas, las expresiones y otros ayudantes de expresión. El esquema también supone que un flujo de trabajo está completo y no tiene en cuenta ningún procesamiento posterior, como la combinación de subflujos de trabajo.

Para evitar conflictos de esquemas JSON, te recomendamos que no uses más de una extensión o complemento para la compatibilidad con la sintaxis de Workflows.

Asocia el esquema JSON de Workflows en VS Code

VS Code es un editor de código fuente que se ejecuta en tu computadora y está disponible para Windows, macOS y Linux. Incluye compatibilidad integrada con varios idiomas y admite extensiones para otros lenguajes y entornos de ejecución. Para instalar y configurar VS Code en tu máquina, consulta Visual Studio Code.

A continuación, se muestran varias formas en las que puedes asociar el esquema JSON de Workflows en VS Code.

Usa Cloud Code para crear flujos de trabajo en YAML

Cloud Code es un conjunto de complementos de IDE que facilitan la creación, la implementación y la integración de aplicaciones en Google Cloud.

Si usas VS Code como IDE, puedes usar Cloud Code cuando escribas tus flujos de trabajo de YAML, y este extraerá automáticamente el esquema JSON de Workflows de SchemaStore.org. Para confirmar que el esquema se aplica como se espera, crea un flujo de trabajo YAML en un lugar de trabajo o una carpeta de VS Code, y confirma que se realice la finalización automática para las palabras clave de Workflows.

Cloud Code también admite esquemas de Google Cloud sin conexión y puede ser usado por quienes tengan restricciones de red o IDE. Para obtener más información, consulta lo siguiente:

Usa YAML de RedHat para crear flujos de trabajo en YAML

Como alternativa al uso de la extensión de Cloud Code para VS Code, puedes usar la extensión de YAML de Red Hat. Esta extensión proporciona compatibilidad con el lenguaje YAML y, además, incluye compatibilidad con la sintaxis de Kubernetes integrada. Extrae automáticamente el esquema JSON de Workflows de SchemaStore.org.

Después de instalar la extensión, crea un flujo de trabajo YAML. En la parte superior del archivo, debería haber un vínculo al archivo de configuración de Workflows de Google Cloud (workflows.json). Si haces clic en el vínculo, se abrirá el esquema JSON de Workflows en el editor de VS Code.

Anula los formatos de nombre de archivo

Cuando usas Cloud Code o YAML de Red Hat para crear flujos de trabajo en YAML, puedes anular los formatos de nombres de archivo predeterminados a los que se aplica el esquema de Workflows. Debes especificar una asignación en el archivo settings.json. La configuración se escribe como JSON y puedes revisar y editar este archivo directamente si lo abres en el editor de VS Code.

Por ejemplo, si usas la extensión de Cloud Code para VS Code, puedes asignar un formato de nombre de archivo en la propiedad cloudcode.yaml.schemas:

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

O bien, si usas la extensión YAML de RedHat, asigna el formato del nombre de archivo en la propiedad yaml.schemas:

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

Los esquemas de la izquierda se aplican a los patrones de glob de la derecha. Cada esquema está asociado con varios globs mediante un array JSON. Tu esquema debe ser una ruta de acceso relativa y no una ruta de acceso absoluta. El esquema puede ser local o en línea.

Usa la compatibilidad integrada para crear flujos de trabajo en JSON

Puedes usar la compatibilidad integrada en VS Code para asociar el esquema JSON de Workflows especificando la asignación en el archivo settings.json, en la propiedad json.schemas. Puedes revisar y editar este archivo directamente. Para ello, ábrelo en el editor de VS Code.

Por ejemplo, para extraer el esquema JSON de Workflows de SchemaStore.org, haz lo siguiente:

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

Los esquemas de la izquierda se aplican a los patrones de glob de la derecha. Un esquema se asocia con varios globs mediante un array JSON. Tu esquema debe ser una ruta de acceso relativa y no una ruta de acceso absoluta. El esquema puede ser local o en línea.

Puedes anular el formato del nombre de archivo. Por ejemplo:

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

Para obtener más información, consulta Cómo editar JSON con Visual Studio Code.

Asocia el esquema JSON de Workflows en IntelliJ IDEA

IntelliJ IDEA es un IDE multiplataforma para lenguajes de máquina virtual Java. Otros lenguajes se admiten a través de complementos. Para instalar y configurar IntelliJ IDEA en tu máquina, consulta Cómo instalar IntelliJ IDEA.

A continuación, se muestran varias formas en las que puedes asociar el esquema de JSON de Workflows en IntelliJ IDEA.

Usa Cloud Code para crear flujos de trabajo en YAML o JSON

Cloud Code es un conjunto de complementos de IDE que facilitan la creación, la implementación y la integración de aplicaciones en Google Cloud.

Si usas IntelliJ como IDE, puedes usar Cloud Code cuando escribas tus flujos de trabajo en YAML o JSON, y este extraerá automáticamente el esquema JSON de Workflows de SchemaStore.org. Cloud Code también admite esquemas de Google Cloud sin conexión y puede ser usado por quienes puedan tener restricciones de red o IDE. Para obtener más información, consulta lo siguiente:

Usa la compatibilidad integrada para crear flujos de trabajo en YAML o JSON

IntelliJ IDEA puede descargar y usar automáticamente esquemas de SchemaStore.org. Puedes descargar el esquema JSON de Workflows y almacenarlo en la raíz del proyecto o especificar la URL del recurso para que IntelliJ IDEA pueda descargar el esquema automáticamente. Para asignar el esquema, sigue las instrucciones para configurar un esquema JSON personalizado.

De forma predeterminada, están habilitadas las descargas automáticas de esquemas de SchemaStore.org y los patrones de nombres de archivo predeterminados se validan en función del esquema.

Para anular los patrones de archivos predeterminados, después de navegar a JSON Schema Mappings a través del diálogo Settings, haz lo siguiente:

  1. En el campo Nombre, escribe Esquema de Workflows.
  2. En el campo Archivo o URL del esquema, escribe https://json.schemastore.org/workflows.json.
  3. En la lista Versión del esquema, selecciona Esquema JSON versión 7.
  4. Agrega un patrón de ruta de acceso al archivo de tu elección.

Asigna el esquema a través de jsonSchema.xml

El código fuente de IntelliJ IDEA Community Edition está disponible en https://github.com/JetBrains/intellij-community.

Para asignar el esquema JSON de Workflows para el editor IntelliJ IDEA, agrega una entrada a jsonSchemas.xml.

Agrega la validación de sintaxis de Workflows a tus procesos de CI/CD

Agregar la validación de sintaxis a tus procesos de integración, entrega y implementación continuas (CI/CD) ayuda a reducir los errores durante la integración, las pruebas, la entrega y la implementación.

Por ejemplo, puedes validar los datos en función del esquema JSON de Workflows con la herramienta ajv-cli. Ten en cuenta que, cuando instales la herramienta, también debes instalar ajv-formats. Por ejemplo:

npm install -g ajv-cli ajv-formats

Otras herramientas que podrían ser útiles:

  • MegaLinter v8r: MegaLinter es una herramienta de código abierto para flujos de trabajo de CI/CD. v8r verifica la validez de los archivos JSON/YAML si tienen un esquema coincidente definido en SchemaStore.org.
  • Validadores de JSON: Son herramientas de validación de JSON categorizadas por lenguaje de programación o plataforma de desarrollo.

¿Qué sigue?