Utilisez ces actions dans votre GitHub pipeline pour interagir avec le modèle de DevOps Config données.

Important : DevOps Config est désormais obsolète et n’est plus pris en charge ni disponible pour une nouvelle activation.

GitHub Les pipelines scriptés et déclaratifs sont pris en charge.

Les ServiceNow actions Validation de configuration DevOps (servicenow-devops-config-validate) et Exportation de configuration DevOps (servicenow-devops-config-export) GitHub sont fournies pour créer une définition de pipeline spécifique.

Validation de configuration DevOps (servicenow-devops-config-validate)

Chargez et validez des données de configuration dans une ServiceNow instance.

Arguments d'entrée
Argument Description
URL d’instance ServiceNow URL d’instance.
devops : nom d’utilisateur d’intégration DevOps Config Nom d’utilisateur d’intégration.
devops : intégration-utilisateur-mot de passe DevOps Config Mot de passe de l’utilisateur d’intégration.
nom_application DevOps Config Nom de l’application.
target Cible du modèle de données où les fichiers de configuration sont téléchargés.
Voici des exemples de cibles de modèles de données :
  • composant
  • collection
  • déployable
nom déployable Nom de l’élément déployable dans le modèle de DevOps Config données.
nom_collection (Facultatif) Nom de collection dans le modèle de données. Requis lorsque la cible est collecte.
chemin d’accès nom (Facultatif) Chemin d’accès du nom du nœud dans le modèle de données où les fichiers de configuration sont chargés.
chemin d’accès au fichier de configuration Chemin d’accès au fichier lors du chargement d’un seul fichier ou modèle de chemin d’accès au fichier basé sur le modèle de style Ant lors du chargement de plusieurs fichiers dans le modèle de données. Voir Tâches basées sur des répertoires pour plus d’informations sur les modèles de style Ant dans la Apache documentation du manuel Ant.1.10.14.
format de données Format des données des fichiers de configuration.
Voici des exemples de formats de données :
  • CSV
  • INI
  • JSON
  • Propriétés
  • RAW
  • XML
  • YAML
attribut format de données (Facultatif) Attributs de format de données étendus pour l’analyse des données de configuration.
Validation automatique Entrée booléenne (vrai ou faux) pour valider les données de configuration après un chargement réussi.

Valeur par défaut : vrai

Valider automatiquement Entrée booléenne (vrai ou faux) pour valider les données de configuration après une validation réussie.

Valeur par défaut : vrai

Publier automatiquement Entrée booléenne (vrai ou faux) pour publier les données de configuration après validation réussie.

Valeur par défaut : vrai

Ensemble de changements (Facultatif) Ouvrez l’ensemble de changements associé à l’action de chargement. Si cette option n’est pas fournie, un nouvel ensemble de changements est créé.
instantané : délai d’expiration de validation (Facultatif) Durée maximale en minutes pour que la validation soit terminée avant l’échec de l’action.

Valeur par défaut : 60

Arrêter en cas d’échecs de validation de politique (Facultatif) Entrée booléenne (vrai ou faux) pour arrêter le workflow après des échecs de validation de politique GitHub .

Valeur par défaut : faux

Sorties
numéro d’ensemble de changements

Numéro de l’ensemble de changements associé à l’action de chargement.

nom_instantané

Nom du dernier instantané de l’élément déployable.

état de validation

État de validation de l’instantané. Exemple : réussi, passed_with_exception, échec, execution_error, not_validated

résultats de validation

Résultats de validation au format JSON pour l’instantané.

Exemple : chargement de fichiers de configuration dans un élément déployable
upload_and_validate_job:
    name: Upload and validate
    needs: <upstream job>
    runs-on: ubuntu-latest
    steps:     
      - name: ServiceNow Devops Config Validate
        uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
        with:
          instance-url: ${{ secrets.SN_INSTANCE_URL }}
          devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
          devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
          application-name: PaymentDemo
          target: deployable
          deployable-name: Production
          name-path: web-api-v1.0
          auto-commit: true
          auto-validate: true
          auto-publish: true
          config-file-path: data/k8s/helm/*.yml
          data-format: yaml
          snapshot-validation-timeout: 60
          terminate-on-policy-validation-failures: true
Exemple : chargement de fichiers de configuration dans une collection
upload_and_validate_job:
    name: Upload and validate
    needs: <upstream job>
    runs-on: ubuntu-latest
    steps:     
      - name: ServiceNow Devops Config Validate
        uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
        with:
          instance-url: ${{ secrets.SN_INSTANCE_URL }}
          devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
          devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
          application-name: PaymentDemo
          target: collection
          deployable-name: Production
          collection-name: release-1.0
          name-path: web-api-v1.0
          auto-commit: true
          auto-validate: true
          auto-publish: true
          config-file-path: data/k8s/helm/*.yml
          data-format: yaml
          snapshot-validation-timeout: 60
          terminate-on-policy-validation-failures: true
Exemple : chargement de fichiers de configuration dans un composant
upload_and_validate_job:
    name: Upload and validate
    needs: <upstream job>
    runs-on: ubuntu-latest
    steps:     
      - name: ServiceNow Devops Config Validate
        uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
        with:
          instance-url: ${{ secrets.SN_INSTANCE_URL }}
          devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
          devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
          application-name: PaymentDemo
          target: component
          deployable-name: Production
          name-path: web-api-v1.0
          auto-commit: true
          auto-validate: true
          auto-publish: true
          config-file-path: data/k8s/helm/*.yml
          data-format: yaml
          snapshot-validation-timeout: 60
          terminate-on-policy-validation-failures: true
Exemple : chargement de plusieurs fichiers de configuration dans une seule validation
upload_and_validate_job:
    name: Upload and validate
    
    needs: <upstream job>
    runs-on: ubuntu-latest
    # Upload an XML file to a component
    steps:     
      - name: ServiceNow Devops Config Validate
        id: upload_and_validate_xml
        uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
        with:
          instance-url: ${{ secrets.SN_INSTANCE_URL }}
          devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
          devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
          application-name: PaymentDemo
          target: component
          deployable-name: Production
          name-path: web-api-v1.0
          auto-commit: false
          auto-validate: true
          auto-publish: true
          config-file-path: data/infra/v1/*.xml
          data-format: xml
          snapshot-validation-timeout: 60
          terminate-on-policy-validation-failures: true

    # Upload a JSON file to the vars folder of a deployable
    steps:     
      - name: ServiceNow Devops Config Validate
        id: upload_and_validate_json
        uses: ServiceNow/servicenow-devops-config-validate@v1.0.0-beta
        with:
          instance-url: ${{ secrets.SN_INSTANCE_URL }}
          devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
          devops-integration-user-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
          application-name: PaymentDemo
          target: component
          deployable-name: Production
          name-path: web-api-v1.0
          auto-commit: true
          auto-validate: true
          auto-publish: true
          config-file-path: data/infra/prod/*.json
          data-format: json
          snapshot-validation-timeout: 60
          terminate-on-policy-validation-failures: true
          changeset : ${{ steps.upload_and_validate_xml.outputs.changeset-number }}

Exportation de configuration DevOps (servicenow-devops-config-export)

Exporter des données de configuration à l’aide de ServiceNow DevOps Config.

Arguments d'entrée
Argument Description
URL d’instance ServiceNow URL d’instance.
devops : nom d’utilisateur d’intégration DevOps Config Nom d’utilisateur d’intégration.
devops : intégration-utilisateur-mot de passe DevOps Config Mot de passe de l’utilisateur d’intégration.
nom_application DevOps Config Nom de l’application.
nom déployable Nom de l’élément déployable dans le modèle de DevOps Config données.
nom de l’exportateur Nom de l’exportateur qui exporte les données de configuration à partir du DevOps Config modèle de données.
nom_instantané (Facultatif) Instantané à partir duquel exporter des données. Si aucun instantané n’est spécifié, le dernier instantané du déployable est utilisé.
format de données d’exportation (Facultatif) Format permettant d’exporter les données de l’instantané.
Voici des exemples de formats de données :
  • CSV
  • INI
  • JSON
  • Propriétés
  • RAW
  • XML
  • YAML
arguments de l’exportateur (Facultatif) Arguments à utiliser avec l’exportateur. La valeur doit être un objet JSON représenté sous forme de chaîne.
Sortie
contenu de l’exportateur

Données de configuration exportées par l’exportateur.

Exemple : exporter un instantané spécifique
export:
    name: Export config
    needs: <upstream job>
    runs-on: ubuntu-latest
    steps:
    - name: ServiceNow DevOps Config Export
      uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
      with:
        instance-url: ${{ secrets.SN_INSTANCE_URL }}
        devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
        devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
        application-name: PaymentDemo
        deployable-name: Production
        exporter-name: returnDataforNodeName-now
        snapshot-name: Production-v1.dpl
        exporter-arguments: '{ "nodeName": "node1" }'
Exemple : exporter le dernier instantané déployé avec des paramètres supplémentaires
export:
    name: Export config
    needs: <upstream job>
    runs-on: ubuntu-latest
    steps:
    - name: ServiceNow DevOps Config Export
      uses: ServiceNow/servicenow-devops-config-export@v1.0.0-beta
      with:
        instance-url: ${{ secrets.SN_INSTANCE_URL }}
        devops-integration-username: ${{ secrets.SN_DEVOPS_CONFIG_USERNAME }}
        devops-integration-password: ${{ secrets.SN_DEVOPS_CONFIG_PASSWORD }}
        application-name: PaymentDemo
        deployable-name: Production
        exporter-name: returnDataforNodeName-now
        exporter-arguments: '{ "nodeName": "node1" }'
        exporter-data-format: XML