Utiliser le schéma JSON Workflows dans votre IDE

Pour prendre en charge la syntaxe lors de la création d'un workflow, vous pouvez utiliser le schéma JSON Workflows dans un environnement de développement intégré (IDE) tel que Visual Studio Code (VS Code) ou Intellij IDEA. La syntaxe est compatible avec la saisie semi-automatique, la validation et la documentation intégrée. Le schéma peut également être intégré à vos processus CI/CD.

Le schéma JSON Workflows est écrit en JSON Schema, un langage déclaratif qui vous permet d'annoter et de valider des documents JSON. La source du schéma est hébergée sur SchemaStore.org, un dépôt de schémas pour les fichiers de configuration JSON courants. Notez que les schémas de SchemaStore.org peuvent également être appliqués aux fichiers YAML.

Selon l'IDE ou l'éditeur que vous préférez utiliser, vous pouvez installer un plug-in ou appliquer la compatibilité intégrée avec le schéma Workflows. Le schéma peut être stocké localement à la racine de votre projet ou spécifié via son URL de ressource sur SchemaStore.org.

Format du nom de fichier pour les fichiers de définition de workflow

Quel que soit l'IDE ou l'éditeur que vous utilisez, si vous utilisez un plug-in ou une extension pour appliquer automatiquement le schéma Workflows à partir de schemaStore.org, le format de votre fichier de définition de workflow doit être le suivant:

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

Si vous utilisez VS Code ou une compatibilité intégrée pour appliquer le schéma Workflows, vous pouvez remplacer les formats de nom de fichier.

Limites

La prise en charge de la syntaxe via le schéma JSON Workflows se concentre sur la saisie semi-automatique des mots clés qui définissent un workflow. Le schéma accepte la saisie semi-automatique pour certaines fonctions de la bibliothèque standard, mais sa compatibilité avec les noms de variables dynamiques, les expressions et d'autres assistants d'expression est limitée. Le schéma part également du principe qu'un workflow est terminé et ne prend en compte aucun post-traitement, tel que la combinaison de sous-workflows.

Pour éviter les conflits de schéma JSON, nous vous recommandons de ne pas utiliser plusieurs extensions ou plug-ins pour la compatibilité avec la syntaxe Workflows.

Associer le schéma JSON Workflows dans VS Code

VS Code est un éditeur de code source qui s'exécute sur votre ordinateur et est disponible pour Windows, macOS et Linux. Il est compatible avec plusieurs langages et prend en charge des extensions pour d'autres langages et environnements d'exécution. Pour installer et configurer VS Code sur votre ordinateur, consultez la page Visual Studio Code.

Voici différentes manières d'associer le schéma JSON Workflows à VS Code.

Créer des workflows en YAML à l'aide de Cloud Code

Cloud Code est un ensemble de plug-ins IDE qui facilitent la création, le déploiement et l'intégration d'applications avec Google Cloud.

Si vous utilisez VS Code comme IDE, vous pouvez utiliser Cloud Code lors de la création de vos workflows YAML. Le schéma JSON Workflows sera automatiquement extrait de SchemaStore.org. Pour vérifier que le schéma est appliqué comme prévu, créez un workflow YAML dans un espace de travail ou un dossier VS Code et vérifiez que la saisie semi-automatique est activée pour les mots clés Workflows.

Cloud Code est également compatible avec les schémas Google Cloud hors connexion et peut être utilisé par des utilisateurs susceptibles d'avoir des restrictions liées au réseau ou à l'IDE. Pour en savoir plus, consultez les ressources suivantes:

Utiliser YAML par RedHat pour créer des workflows en YAML

Au lieu d'utiliser l'extension Cloud Code for VS Code, vous pouvez utiliser l'extension YAML par RedHat. Cette extension est compatible avec le langage YAML et inclut une compatibilité intégrée avec la syntaxe Kubernetes. Il extrait automatiquement le schéma JSON Workflows de schemaStore.org.

Après avoir installé l'extension, créez un workflow YAML. En haut du fichier, vous devriez trouver un lien Fichier de configuration Google Cloud Workflows (workflows.json). Si vous cliquez sur le lien, le schéma JSON Workflows s'ouvre dans l'éditeur VS Code.

Remplacer le format des noms de fichiers

Lorsque vous utilisez Cloud Code ou YAML par RedHat pour créer des workflows en YAML, vous pouvez remplacer les formats de nom de fichier par défaut auxquels le schéma Workflows est appliqué. Vous devez spécifier un mappage dans le fichier settings.json. Les paramètres sont écrits au format JSON. Vous pouvez consulter et modifier ce fichier directement en l'ouvrant dans l'éditeur VS Code.

Par exemple, si vous utilisez l'extension Cloud Code pour VS Code, vous pouvez mapper un format de nom de fichier sous la propriété cloudcode.yaml.schemas:

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

Si vous utilisez l'extension YAML par RedHat, mappez le format du nom de fichier sous la propriété yaml.schemas:

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

Les schémas de gauche sont appliqués aux motifs glob de droite. Chaque schéma est associé à plusieurs globs à l'aide d'un tableau JSON. Votre schéma doit être un chemin d'accès relatif et non un chemin d'accès absolu. Votre schéma peut être local ou en ligne.

Utiliser la compatibilité intégrée pour créer des workflows au format JSON

Vous pouvez utiliser la compatibilité intégrée de VS Code pour associer le schéma JSON Workflows en spécifiant le mappage dans le fichier settings.json, sous la propriété json.schemas. Vous pouvez consulter et modifier ce fichier directement en l'ouvrant dans l'éditeur VS Code.

Par exemple, pour extraire le schéma JSON Workflows à partir de schemaStore.org, procédez comme suit:

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

Les schémas de gauche sont appliqués aux motifs glob de droite. Un schéma est associé à plusieurs globs à l'aide d'un tableau JSON. Votre schéma doit être un chemin d'accès relatif et non un chemin d'accès absolu. Votre schéma peut être local ou en ligne.

Vous pouvez remplacer le format du nom de fichier. Exemple :

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

Pour en savoir plus, consultez Modifier JSON avec Visual Studio Code.

Associer le schéma JSON Workflows dans IntelliJ IDEA

IntelliJ IDEA est un IDE multiplate-forme pour les langages de machine virtuelle Java. D'autres langages sont compatibles avec des plug-ins. Pour installer et configurer IntelliJ IDEA sur votre ordinateur, consultez la page Installer IntelliJ IDEA.

Voici différentes manières d'associer le schéma JSON Workflows dans IntelliJ IDEA.

Utiliser Cloud Code pour créer des workflows en YAML ou JSON

Cloud Code est un ensemble de plug-ins IDE qui facilitent la création, le déploiement et l'intégration d'applications avec Google Cloud.

Si vous utilisez IntelliJ comme IDE, vous pouvez utiliser Cloud Code lors de la création de vos workflows au format YAML ou JSON. Le schéma JSON Workflows sera automatiquement extrait de SchemaStore.org. Cloud Code est également compatible avec les schémas Google Cloud hors connexion et peut être utilisé par les personnes susceptibles d'avoir des restrictions de réseau ou d'IDE. Pour en savoir plus, consultez les sections suivantes :

Utiliser la compatibilité intégrée pour créer des workflows au format YAML ou JSON

IntelliJ IDEA peut automatiquement télécharger et utiliser des schémas depuis SchemaStore.org. Vous pouvez télécharger le schéma JSON Workflows et le stocker à la racine du projet ou spécifier l'URL de la ressource afin qu'IntelliJ IDEA puisse télécharger le schéma automatiquement. Pour mapper le schéma, suivez les instructions de configuration d'un schéma JSON personnalisé.

Par défaut, les téléchargements automatiques de schémas depuis SchemaStore.org sont activés, et les modèles de nom de fichier par défaut sont validés par rapport au schéma.

Pour ignorer les modèles de fichiers par défaut, accédez à la page Mappages de schéma JSON dans la boîte de dialogue Paramètres, puis procédez comme suit:

  1. Dans le champ Nom, saisissez Workflows schema.
  2. Dans le champ Schema file or URL (Fichier de schéma ou URL), saisissez https://json.schemastore.org/workflows.json.
  3. Dans la liste Version du schéma, sélectionnez Schéma JSON version 7.
  4. Ajoutez le format de chemin d'accès au fichier.

Mapper le schéma via jsonSchema.xml

Le code source d'IntelliJ IDEA Community Edition est disponible sur https://github.com/JetBrains/intellij-community.

Vous pouvez mapper le schéma JSON Workflows pour l'éditeur IntelliJ IDEA en ajoutant une entrée au fichier jsonSchemas.xml.

Ajoutez la validation de la syntaxe Workflows à vos processus CI/CD

L'ajout de la validation de syntaxe à vos processus d'intégration, de livraison et de déploiement continus (CI/CD) permet de réduire les erreurs lors de l'intégration, des tests, de la livraison et du déploiement.

Par exemple, vous pouvez valider les données par rapport au schéma JSON Workflows à l'aide de l'outil ajv-cli. Notez que lorsque vous installez l'outil, installez également ajv-formats. Exemple :

npm install -g ajv-cli ajv-formats

Autres outils qui pourraient vous être utiles:

  • MegaLinter v8r : MegaLinter est un outil Open Source pour les workflows CI/CD. La version v8r vérifie la validité des fichiers JSON/YAML s'ils disposent d'un schéma correspondant défini sur SchemaStore.org.
  • Programmes de validation JSON : outils de validation JSON classés par langage de programmation ou plate-forme de développement.

Étapes suivantes