Cómo usar 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 los procesos de CI/CD.

El esquema JSON de Workflows está escrito en el esquema JSON, 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 archivos YAML.

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

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

Sin importar el IDE o editor que uses, si usas un complemento o una extensión para aplicar automáticamente el esquema de Workflows desde SchemaStore.org, el formato del nombre de archivo del archivo de definición del 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 nombre de archivo.

Limitaciones

La compatibilidad con la sintaxis mediante el esquema JSON de Workflows se centra en el autocompletado de palabras clave que definen un flujo de trabajo. El esquema admite el autocompletado para algunas funciones de biblioteca estándar, pero la compatibilidad es limitada con los nombres de variables dinámicas, las expresiones y otros asistentes de expresión. El esquema también supone que un flujo de trabajo está completo y no considera ningún procesamiento posterior, como la combinación de subflujos de trabajo.

Para evitar conflictos con 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 computadoras y está disponible para Windows, macOS y Linux. Viene con compatibilidad integrada para varios lenguajes y 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 mencionan 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 crees los flujos de trabajo de YAML, y este extraerá automáticamente el esquema JSON de flujos de trabajo 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 el autocompletado se esté realizando para las palabras clave de Workflows.

Cloud Code también admite esquemas de Google Cloud sin conexión, y aquellos que tienen restricciones de red o IDE pueden usarlo. Para obtener más información, consulta los siguientes vínculos:

Usa YAML de Red Hat 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 YAML de Red Hat. Esta extensión es compatible con el lenguaje YAML y, además, incluye compatibilidad integrada con la sintaxis de Kubernetes. 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 Google Cloud Workflows (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 formato YAML, puedes anular los formatos de nombre 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 está escrita en 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 Red Hat, 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 glob de la derecha; cada esquema se asocia con varios globs a través de un arreglo JSON. El esquema debe ser una ruta de acceso relativa y no una absoluta. Tu 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 con la especificación de la asignación en el archivo settings.json, en la propiedad json.schemas. Para revisar y editar este archivo directamente, ábrelo en el editor de VS Code.

Por ejemplo, para extraer el esquema JSON de flujos de trabajo de SchemaStore.org:

{
    "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 glob de la derecha; un esquema se asocia con varios globs a través de un arreglo JSON. El esquema debe ser una ruta relativa y no una absoluta. Tu 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 Edita JSON con Visual Studio Code.

Asocia el esquema JSON de Workflows en IntelliJ IDEA

IntelliJ IDEA es un IDE multiplataforma para los lenguajes de máquinas virtuales Java. Los complementos admiten otros lenguajes. 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 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 crees los 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 los pueden usar quienes tengan restricciones de red o IDE. Para obtener más información, consulta los siguientes vínculos:

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 manera predeterminada, las descargas automáticas de esquemas desde SchemaStore.org están habilitadas y los patrones de nombres de archivo predeterminados se validan según el esquema.

Para anular los patrones de archivo predeterminados, después de navegar a Asignaciones de esquemas de JSON a través del diálogo Configuración, haz lo siguiente:

  1. En el campo Name, escribe Workflows schema.
  2. En el campo URL o archivo de esquema, escribe https://json.schemastore.org/workflows.json.
  3. En la lista Versión del esquema, selecciona JSON Schema version 7.
  4. Agrega el patrón de ruta de acceso al archivo que desees.

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.

Puedes asignar el esquema JSON de Workflows para el editor de IntelliJ IDEA agregando 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 los procesos de integración, implementación y entrega continuas (CI/CD) ayuda a reducir los errores durante la integración, las pruebas, la entrega y la implementación.

Por ejemplo, puedes validar datos con el esquema JSON de flujos de trabajo con la herramienta ajv-cli. Ten en cuenta que, cuando instales la herramienta, también deberás instalar ajv-formats. Por ejemplo:

npm install -g ajv-cli ajv-formats

Otras herramientas que pueden 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: Herramientas de validación de JSON categorizadas por lenguaje de programación o plataforma de desarrollo.

¿Qué sigue?