Usar o esquema JSON do Workflows no seu ambiente de desenvolvimento integrado

Para oferecer suporte à sintaxe ao criar um fluxo de trabalho, use o esquema JSON de fluxos de trabalho em um ambiente de desenvolvimento integrado (IDE, na sigla em inglês), como o Visual Studio Code (VS Code) ou o Intellij IDEA. O suporte à sintaxe inclui preenchimento automático, validação e documentação inline. O esquema também pode ser integrado aos seus processos de CI/CD.

O esquema JSON do Workflows é escrito no esquema JSON, uma linguagem declarativa que permite anotar e validar documentos JSON. A origem do esquema está hospedada em SchemaStore.org, um repositório de esquemas para arquivos de configuração comuns baseados em JSON. Observe que os esquemas do SchemaStore.org também podem ser aplicados a arquivos YAML.

Dependendo do ambiente de desenvolvimento integrado ou do editor que você prefere usar, é possível instalar um plug-in ou aplicar suporte integrado para usar o esquema do Workflows. O esquema pode ser armazenado localmente na raiz do projeto ou pode ser especificado por meio do URL do recurso em SchemaStore.org.

Formato de nome para arquivos de definição de fluxo de trabalho

Seja qual for o ambiente de desenvolvimento integrado ou o editor usado, se você estiver usando um plug-in ou uma extensão para aplicar automaticamente o esquema do Workflows do SchemaStore.org, o formato do nome do arquivo de definição de fluxo de trabalho precisa ser o seguinte:

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

Se você estiver usando o VS Code ou com o suporte integrado para aplicar o esquema de Workflows, é possível substituir os formatos do nome de arquivo.

Limitações

O suporte de sintaxe por meio do esquema JSON do Workflows se concentra no preenchimento automático de palavras-chave que definem um fluxo de trabalho. O esquema é compatível com o preenchimento automático para algumas funções da biblioteca padrão, mas há compatibilidade limitada para nomes de variáveis dinâmicas, expressões e outros auxiliares de expressão. O esquema também pressupõe que um fluxo de trabalho esteja completo e não considera nenhum pós-processamento, como a combinação de subfluxos de trabalho.

Para evitar conflitos de esquema JSON, recomendamos que você não use mais de uma extensão ou plug-in para ter suporte à sintaxe do Workflows.

Associar o esquema JSON do Workflows ao VS Code

O VS Code é um editor de código-fonte que é executado na área de trabalho e está disponível para Windows, macOS e Linux. Ele tem suporte integrado a vários idiomas e a extensões para outros idiomas e ambientes de execução. Para instalar e configurar o VS Code na sua máquina, consulte Visual Studio Code.

Confira abaixo várias maneiras de associar o esquema JSON do Workflows no VS Code.

Usar o Cloud Code para criar fluxos de trabalho em YAML

O Cloud Code é um conjunto de plug-ins de ambiente de desenvolvimento integrado que facilita a criação, a implantação e a integração de aplicativos com o Google Cloud.

Se você estiver usando o VS Code como ambiente de desenvolvimento integrado, é possível usar o Cloud Code ao criar fluxos de trabalho YAML, e ele extrai automaticamente o esquema JSON dos fluxos de trabalho do SchemaStore.org. Para confirmar que o esquema está sendo aplicado como esperado, crie um fluxo de trabalho YAML em um espaço de trabalho ou pasta do VS Code e confirme se o preenchimento automático está ocorrendo para palavras-chave do Workflows.

O Cloud Code também é compatível com esquemas off-line do Google Cloud e pode ser usado por pessoas com restrições de rede ou ambiente de desenvolvimento integrado. Para mais informações, consulte os tópicos abaixo:

Usar YAML do RedHat para criar fluxos de trabalho em YAML

Como alternativa ao uso da extensão do Cloud Code para VS Code, é possível usar a extensão YAML by RedHat. Essa extensão é compatível com a linguagem YAML e inclui suporte à sintaxe integrada do Kubernetes. Ele extrai automaticamente o esquema JSON do Workflows de SchemaStore.org.

Depois de instalar a extensão, crie um fluxo de trabalho YAML. Na parte superior do arquivo, há um link do arquivo de configuração do Google Cloud Workflows (workflows.json). Se você clicar no link, o esquema JSON do Workflows será aberto no editor do VS Code.

Substituir os formatos do nome do arquivo

Ao usar o Cloud Code ou o YAML do RedHat para criar fluxos de trabalho em YAML, é possível substituir os formatos de nome de arquivo padrão em que o esquema do Workflows é aplicado. Especifique um mapeamento no arquivo settings.json. As configurações são escritas como JSON, e você pode revisar e editar esse arquivo diretamente abrindo-o no editor do VS Code.

Por exemplo, se você estiver usando a extensão do Cloud Code para VS Code, poderá mapear um formato de nome de arquivo na propriedade cloudcode.yaml.schemas:

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

Ou, se você estiver usando a extensão YAML do RedHat, mapeie o formato do nome do arquivo na propriedade yaml.schemas:

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

Os esquemas à esquerda são aplicados aos padrões glob à direita. Cada esquema está associado a vários globs usando uma matriz JSON. O esquema precisa ser um caminho relativo, e não absoluto. Ele pode ser local ou on-line.

Usar o suporte integrado para criar fluxos de trabalho em JSON

É possível usar o suporte integrado no VS Code para associar o esquema JSON do Workflows especificando o mapeamento no arquivo settings.json, na propriedade json.schemas. Revise e edite esse arquivo diretamente abrindo-o no editor do VS Code.

Por exemplo, para extrair o esquema JSON do Workflows de SchemaStore.org:

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

Os esquemas à esquerda são aplicados aos padrões glob à direita. Um esquema está associado a vários globs usando uma matriz JSON. O esquema precisa ser um caminho relativo, e não absoluto. Ele pode ser local ou on-line.

Você pode substituir o formato do nome do arquivo. Exemplo:

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

Para mais informações, consulte Como editar o JSON com o Visual Studio Code.

Associar o esquema JSON do Workflows ao IntelliJ IDEA

O IntelliJ IDEA é um ambiente de desenvolvimento integrado multiplataforma para linguagens de máquinas virtuais Java. Outras linguagens têm suporte por plug-ins. Para instalar e configurar o IntelliJ IDEA na sua máquina, consulte Instalar o IntelliJ IDEA (link em inglês).

Veja a seguir várias maneiras de associar o esquema JSON do Workflows no IntelliJ IDEA.

Usar o Cloud Code para criar fluxos de trabalho em YAML ou JSON

O Cloud Code é um conjunto de plug-ins de ambiente de desenvolvimento integrado que facilita a criação, a implantação e a integração de aplicativos com o Google Cloud.

Se você estiver usando o IntelliJ como seu ambiente de desenvolvimento integrado, poderá usar o Cloud Code ao criar fluxos de trabalho em YAML ou JSON para que ele extraia automaticamente o esquema JSON do Workflows do SchemaStore.org. O Cloud Code também oferece suporte a esquemas off-line do Google Cloud e pode ser usado por pessoas com restrições de rede ou ambiente de desenvolvimento integrado. Para mais informações, consulte as seguintes seções:

Usar o suporte integrado para criar fluxos de trabalho em YAML ou JSON

O IntelliJ IDEA pode fazer o download e usar automaticamente esquemas de SchemaStore.org. É possível fazer o download do esquema JSON do Workflows e armazená-lo na raiz do projeto ou especificar o URL do recurso para que o IntelliJ IDEA possa fazer o download do esquema automaticamente. Para fazer isso, siga as instruções para configurar um esquema JSON personalizado.

Por padrão, os downloads automáticos de esquemas do SchemaStore.org são ativados e os padrões de nome de arquivo padrão são validados em relação ao esquema.

Para substituir os padrões de arquivo padrão, depois de navegar até Mapeamentos de esquema JSON pela caixa de diálogo Configurações, faça o seguinte:

  1. No campo Nome, digite Esquema de fluxos de trabalho.
  2. No campo Arquivo do esquema ou URL, digite https://json.schemastore.org/workflows.json.
  3. Na lista Versão do esquema, selecione JSON Schema version 7.
  4. Adicione um Padrão de caminho de arquivo de sua escolha.

Mapear o esquema com jsonSchema.xml

O código-fonte do IntelliJ IDEA Community Edition está disponível em https://github.com/JetBrains/intellij-community (link em inglês).

É possível mapear o esquema JSON do Workflows para o editor do IntelliJ IDEA adicionando uma entrada a jsonSchemas.xml.

Adicionar a validação de sintaxe do Workflows aos seus processos de CI/CD

Adicionar a validação de sintaxe aos processos de integração, entrega e implantação contínuas (CI/CD) ajuda a reduzir erros durante integração, teste, entrega e implantação.

Por exemplo, é possível validar dados em relação ao esquema JSON do Workflows usando a ferramenta ajv-cli. Observe que, ao instalar a ferramenta, também instale ajv-formats. Exemplo:

npm install -g ajv-cli ajv-formats

Outras ferramentas que podem ser úteis:

  • MegaLinter v8r: é uma ferramenta de código aberto para fluxos de trabalho de CI/CD. O v8r verifica a validade dos arquivos JSON/YAML se eles tiverem um esquema correspondente definido no SchemaStore.org.
  • Validadores de JSON: ferramentas de validação de JSON categorizadas por linguagem de programação ou plataforma de desenvolvimento.

A seguir