Avec des variables et des expressions, vous pouvez utiliser des paramètres d'entrée et des paramètres de sortie avec vos tâches de pipeline. Les paramètres que vous entrez lient votre tâche de pipeline à une ou plusieurs variables, expressions ou conditions, et déterminent le comportement du pipeline lors de son exécution.

Les pipelines peuvent exécuter des solutions de livraison de logiciels simples ou complexes

Lorsque vous liez des tâches de pipeline ensemble, vous pouvez inclure des expressions par défaut et complexes. Par conséquent, votre pipeline peut exécuter des solutions de livraison de logiciel simples ou complexes.

Pour créer les paramètres dans votre pipeline, cliquez sur l'onglet Entrée ou Sortie et ajoutez une variable en entrant le symbole dollar $ et une expression. Par exemple, ce paramètre est utilisé comme une entrée de tâche qui appelle une URL : ${Stage0.Task3.input.URL}.

Le format des liaisons de variables utilise des composants de syntaxe appelés portées et clés. SCOPE définit le contexte comme entrée ou sortie, et KEY définit les détails. Dans l'exemple de paramètre ${Stage0.Task3.input.URL}, input est SCOPE et l'URL est KEY.

Les propriétés de sortie d'une tâche peuvent résoudre n'importe quel nombre de niveaux imbriqués de liaison de variable.

Pour en savoir plus sur l'utilisation de liaisons de variables dans des pipelines, consultez Utilisation des liaisons de variables dans les pipelines Code Stream.

Utilisation d'expressions en dollars avec des étendues et des clés pour lier des tâches de pipeline

Vous pouvez lier des tâches de pipeline en utilisant des expressions dans des variables à symbole de dollar. Vous entrez des expressions en tant que ${SCOPE.KEY.<PATH>}.

Pour déterminer le comportement d'une tâche de pipeline, dans chaque expression, SCOPE est le contexte que Code Stream utilise. La portée recherche une KEY qui définit les détails de l'action effectuée par la tâche. Lorsque la valeur de KEY est un objet imbriqué, vous pouvez fournir un PATH facultatif.

Ces exemples décrivent SCOPE et KEY, et vous montrent comment les utiliser dans votre pipeline.

Tableau 1. Utilisation de SCOPE et de KEY
SCOPE Objet de l'expression et exemple KEY Utilisation de SCOPE et KEY dans votre pipeline
input

Propriétés d'entrée d'un pipeline :

${input.input1}

Nom de la propriété d'entrée

Pour faire référence à la propriété d'entrée d'un pipeline dans une tâche, utilisez ce format :

tasks:
  mytask:
    type: REST
    input:
      url: ${input.url}
      action: get
input:
  url: https://www.vmware.com
output

Propriétés de sortie d'un pipeline :

${output.output1}

Nom de la propriété de sortie

Pour faire référence à une propriété de sortie pour l'envoi d'une notification, utilisez ce format :

notifications:
 email:
 - endpoint: MyEmailEndpoint
   subject: "Deployment Successful"
   event: COMPLETED
   to:
   - [email protected]
   body: |
     Pipeline deployed the service successfully. Refer ${output.serviceURL}
task input

Entrée d'une tâche :

${MY_STAGE.MY_TASK.input.SOMETHING}

Indique l'entrée d'une tâche dans une notification

Lorsqu'un travail Jenkins démarre, il peut faire référence au nom de la tâche déclenchée à partir de l'entrée de la tâche. Dans ce cas, envoyez une notification à l'aide de ce format :

notifications:
  email:
  - endpoint: MyEmailEndpoint
    stage: MY_STAGE
    task: MY_TASK
    subject: "Build Started"
    event: STARTED
    to:
    - [email protected]
    body: |
      Jenkins job ${MY_STAGE.MY_TASK.input.job} started for commit id ${input.COMMITID}.
task output

Sortie d'une tâche :

${MY_STAGE.MY_TASK.output.SOMETHING}

Indique la sortie d'une tâche dans une tâche suivante

Pour faire référence à la sortie de la tâche de pipeline 1 dans la tâche 2, utilisez ce format :

taskOrder:
  - task1
  - task2
tasks:
 task1:
   type: REST
   input:
     action: get
     url: https://www.example.org/api/status
 task2:
   type: REST
   input:
     action: post
     url: https://status.internal.example.org/api/activity
     payload: ${MY_STAGE.task1.output.responseBody}
var

Variable :

${var.myVariable}

Faire référence à une variable dans un point de terminaison

Pour faire référence à une variable secrète dans un point de terminaison pour mot de passe, utilisez ce format :

---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
 url: https://jenkins.example.com
 username: jenkinsUser
 password: ${var.jenkinsPassword}
var

Variable :

${var.myVariable}

Faire référence à une variable dans un pipeline

Pour faire référence à une variable dans une URL de pipeline, utilisez ce format :

tasks:
 task1:
  type: REST
  input:
   action: get
   url: ${var.MY_SERVER_URL}
task status

État d'une tâche :

${MY_STAGE.MY_TASK.status}

${MY_STAGE.MY_TASK.statusMessage}

stage status

État d'une étape :

${MY_STAGE.status}

${MY_STAGE.statusMessage}

Expressions par défaut

Vous pouvez utiliser des variables avec des expressions dans votre pipeline. Ce résumé inclut les expressions par défaut que vous pouvez utiliser.

Expression Description
${comments} Commentaires fournis lors de la demande d'exécution du pipeline.
${duration} Durée de l'exécution du pipeline.
${endTime} Heure de fin de l'exécution du pipeline en UTC, si conclue.
${executedOn} Identique à l'heure de début, l'heure de début de l'exécution du pipeline en UTC.
${executionId} ID de l'exécution du pipeline.
${executionUrl} URL qui permet d'accéder à l'exécution du pipeline dans l'interface utilisateur.
${name} Nom du pipeline.
${requestBy} Nom de l'utilisateur qui a demandé l'exécution.
${stageName} Nom de l'étape actuelle, lorsqu'elle est utilisée dans l'étendue d'une étape.
${startTime} Heure de début de l'exécution du pipeline en UTC.
${status} État de l'exécution.
${statusMessage} Message d'état de l'exécution du pipeline.
${taskName} Nom de la tâche actuelle, lorsqu'elle est utilisée au niveau d'une entrée de tâche ou d'une notification.

Utilisation de SCOPE et KEY dans les tâches de pipeline

Vous pouvez utiliser des expressions avec n'importe quelle tâche de pipeline prise en charge. Ces exemples vous montrent comment définir SCOPE et KEY, et confirmer la syntaxe. Ces exemples de code utilisent MY_STAGE et MY_TASK comme étape de pipeline et noms de tâches.

Pour en savoir plus sur les tâches disponibles, consultez Types de tâches disponibles dans Code Stream.

Tableau 2. Assemblage de tâches
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
Opération de l'utilisateur
Input

summary : résumé de la demande d'opération d'utilisateur

description : description de la demande d'opération d'utilisateur

approvers : liste des adresses e-mail de l'approbateur, dans lesquelles chaque entrée peut être une variable avec une virgule ou utiliser un point-virgule pour les e-mails séparés

approverGroups : liste des adresses des groupes d'approbateurs pour la plate-forme et l'identité

sendemail : envoie éventuellement une notification par e-mail lors de la demande ou de la réponse lorsqu'elle est définie sur true

expirationInDays : nombre de jours qui représente le délai d'expiration de la demande

${MY_STAGE.MY_TASK.input.summary}

${MY_STAGE.MY_TASK.input.description}

${MY_STAGE.MY_TASK.input.approvers}

${MY_STAGE.MY_TASK.input.approverGroups}

${MY_STAGE.MY_TASK.input.sendemail}

${MY_STAGE.MY_TASK.input.expirationInDays}

Output

index : chaîne hexadécimale à 6 chiffres qui représente la demande

respondedBy : nom du compte de la personne qui a approuvé/refusé l'opération d'utilisateur

respondedByEmail : adresse e-mail de la personne qui a répondu

comments : commentaires fournis lors de la réponse

${MY_STAGE.MY_TASK.output.index}

${MY_STAGE.MY_TASK.output.respondedBy}

${MY_STAGE.MY_TASK.output.respondedByEmail}

${MY_STAGE.MY_TASK.output.comments}

Condition
Input

condition : condition à évaluer. Lorsque la condition est évaluée sur true, elle indique que la tâche est terminée, tandis que d'autres réponses font échouer la tâche

${MY_STAGE.MY_TASK.input.condition}

Output

result : résultat lors de l'évaluation

${MY_STAGE.MY_TASK.output.response}

Tableau 3. Tâches de pipeline
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
Pipeline
Input

name : nom du pipeline à exécuter

inputProperties : propriétés d'entrée à transmettre à l'exécution de pipeline imbriquée

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.inputProperties} # Faire référence à toutes les propriétés

${MY_STAGE.MY_TASK.input.inputProperties.input1} # Faire référence à la valeur de input1

Output

executionStatus : état de l'exécution du pipeline

executionIndex : index de l'exécution du pipeline

outputProperties : propriétés de sortie de l'exécution du pipeline

${MY_STAGE.MY_TASK.output.executionStatus}

${MY_STAGE.MY_TASK.output.executionIndex}

${MY_STAGE.MY_TASK.output.outputProperties} # Faire référence à toutes les propriétés

${MY_STAGE.MY_TASK.output.outputProperties.output1} # Faire référence à la valeur d'output1

Tableau 4. Automatiser les tâches d'intégration continue
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
CI
Input

steps : ensemble de chaînes, qui représentent les commandes à exécuter

export : variables d'environnement à conserver après l'exécution des étapes

artifacts : chemins d'artefacts à conserver dans le chemin partagé

process : ensemble d'éléments de configuration pour le traitement de JUnit, JaCoCo, Checkstyle, FindBugs

${MY_STAGE.MY_TASK.input.steps}

${MY_STAGE.MY_TASK.input.export}

${MY_STAGE.MY_TASK.input.artifacts}

${MY_STAGE.MY_TASK.input.process}

${MY_STAGE.MY_TASK.input.process[0].path} # Faire référence au chemin d'accès de la première configuration

Output

exports : paire clé-valeur, qui représente les variables d'environnement exportées depuis l'entrée export

artifacts : chemin d'artefacts correctement conservés

processResponse : ensemble de résultats traités pour le process d'entrée

${MY_STAGE.MY_TASK.output.exports} # Faire référence à toutes les exportations

${MY_STAGE.MY_TASK.output.exports.myvar} # Faire référence à la valeur de myvar

${MY_STAGE.MY_TASK.output.artifacts}

${MY_STAGE.MY_TASK.output.processResponse}

${MY_STAGE.MY_TASK.output.processResponse[0].result} # Résultat de la configuration du premier processus

Personnalisé
Input

name : nom de l'intégration personnalisée

version : version de l'intégration personnalisée, publiée ou déconseillée

properties : propriétés à envoyer à l'intégration personnalisée

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.version}

${MY_STAGE.MY_TASK.input.properties} # Faire référence à toutes les propriétés

${MY_STAGE.MY_TASK.input.properties.property1} # Faire référence à la valeur de property1

Output

properties : propriétés de sortie de la réponse d'intégration personnalisée

${MY_STAGE.MY_TASK.output.properties} # Faire référence à toutes les propriétés

${MY_STAGE.MY_TASK.output.properties.property1} # Faire référence à la valeur de property1

Tableau 5. Automatiser les tâches de déploiement continue : modèle de cloud
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
Modèle de cloud
Input

action : un des éléments createDeployment, updateDeployment, deleteDeployment, rollbackDeployment

blueprintInputParams : utilisé pour les actions Créer un déploiement et Mettre à jour le déploiement

allowDestroy : des machines peuvent être détruites lors du processus de déploiement de la mise à jour.

CREATE_DEPLOYMENT

  • blueprintName : nom du modèle de cloud
  • blueprintVersion : version du modèle de cloud

OU

  • fileUrl : URL du modèle de cloud distant YAML, après la sélection d'un serveur GIT.

UPDATE_DEPLOYMENT

Une de ces combinaisons :

  • blueprintName : nom du modèle de cloud
  • blueprintVersion : version du modèle de cloud

OU

  • fileUrl : URL du modèle de cloud distant YAML, après la sélection d'un serveur GIT.

------

  • deploymentId : ID du déploiement

OU

  • deploymentName: nom du déploiement

------

DELETE_DEPLOYMENT

  • deploymentId : ID du déploiement

OU

  • deploymentName: nom du déploiement

ROLLBACK_DEPLOYMENT

Une de ces combinaisons :

  • deploymentId : ID du déploiement

OU

  • deploymentName: nom du déploiement

------

  • blueprintName : nom du modèle de cloud
  • rollbackVersion : version à restaurer
Output

Paramètres pouvant être liés à d'autres tâches ou à la sortie d'un pipeline :

  • Le nom du déploiement est accessible en tant que ${Stage0.Task0.output.deploymentName}
  • L'ID de déploiement est accessible en tant que ${Stage0.Task0.output.deploymentId}
  • Les détails du déploiement constituent un objet complexe et les détails internes sont accessibles à l'aide des résultats JSON.

Pour accéder à n'importe quelle propriété, utilisez l'opérateur point pour suivre la hiérarchie JSON. Par exemple, pour accéder à l'adresse de la ressource Cloud_Machine_1[0], la liaison $ est :

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address}

De même, pour le type, la liaison $ est :

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor}

Dans l'interface utilisateur de Code Stream, vous pouvez obtenir les liaisons $ pour n'importe quelle propriété.

  1. Dans la zone de la propriété de sortie de la tâche, cliquez sur EXAMINER LE RÉSULTAT JSON.
  2. Pour trouver la liaison $, entrez n'importe quelle propriété.
  3. Cliquez sur l'icône de recherche, qui affiche la liaison $ correspondante.

Exemple de sortie JSON :

La sortie JSON inclut une fonction de recherche de chemin dans laquelle vous pouvez rechercher des termes tels que address et Code Stream affiche la définition complète de la liaison.

Exemple d'objet de détails de déploiement :

{
	"id": "6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"name": "deployment_6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"description": "Pipeline Service triggered operation",
	"orgId": "434f6917-4e34-4537-b6c0-3bf3638a71bc",
	"blueprintId": "8d1dd801-3a32-4f3b-adde-27f8163dfe6f",
	"blueprintVersion": "1",
	"createdAt": "2020-08-27T13:50:24.546215Z",
	"createdBy": "[email protected]",
	"lastUpdatedAt": "2020-08-27T13:52:50.674957Z",
	"lastUpdatedBy": "[email protected]",
	"inputs": {},
	"simulated": false,
	"projectId": "267f8448-d26f-4b65-b310-9212adb3c455",
	"resources": {
		"Cloud_Machine_1[0]": {
			"id": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"name": "Cloud_Machine_1[0]",
			"powerState": "ON",
			"address": "10.108.79.33",
			"resourceLink": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"componentTypeId": "Cloud.vSphere.Machine",
			"endpointType": "vsphere",
			"resourceName": "Cloud_Machine_1-mcm110615-146929827053",
			"resourceId": "1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"resourceDescLink": "/resources/compute-descriptions/1952d1d3-15f0-4574-ae42-4fbf8a87d4cc",
			"zone": "Automation / Vms",
			"countIndex": "0",
			"image": "ubuntu",
			"count": "1",
			"flavor": "small",
			"region": "MYBU",
			"_clusterAllocationSize": "1",
			"osType": "LINUX",
			"componentType": "Cloud.vSphere.Machine",
			"account": "bha"
		}
	},
	"status": "CREATE_SUCCESSFUL",
	"deploymentURI": "https://api.yourenv.com/automation-ui/#/deployment-ui;ash=/deployment/6a031f92-d0fa-42c8-bc9e-3b260ee2f65b"
}
Tableau 6. Automatiser les tâches de déploiement continues : Kubernetes
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
Kubernetes
Input

action : une des opérations GET, CREATE, APPLY, DELETE, ROLLBACK

  • timeout : délai d'expiration global d'une action
  • filterByLabel : étiquette supplémentaire pour filtrer l'action GET avec K8S labelSelector

GET, CREATE, DELETE, APPLY

  • yaml : YAML en ligne à traiter et à envoyer à Kubernetes
  • parameters : paire KEY, VALUE - Remplacer $$KEY par VALUE dans la zone d'entrée YAML en ligne
  • filePath : chemin d'accès relatif à partir du point de terminaison Git SCM, s'il est fourni, à partir duquel extraire le YAML
  • scmConstants : paire KEY, VALUE - Remplacer $${KEY} par VALUE dans le YAML extrait sur SCM.
  • continueOnConflict : lorsqu'elle est définie sur true, si une ressource est déjà présente, la tâche se poursuit.

ROLLBACK

  • resourceType : type de ressource à restaurer
  • resourceName : nom de la ressource à restaurer
  • namespace : espace de noms dans lequel la restauration doit être effectuée
  • revision : révision à restaurer

${MY_STAGE.MY_TASK.input.action} #Détermine l'action à effectuer.

${MY_STAGE.MY_TASK.input.timeout}

${MY_STAGE.MY_TASK.input.filterByLabel}

${MY_STAGE.MY_TASK.input.yaml}

${MY_STAGE.MY_TASK.input.parameters}

${MY_STAGE.MY_TASK.input.filePath}

${MY_STAGE.MY_TASK.input.scmConstants}

${MY_STAGE.MY_TASK.input.continueOnConflict}

${MY_STAGE.MY_TASK.input.resourceType}

${MY_STAGE.MY_TASK.input.resourceName}

${MY_STAGE.MY_TASK.input.namespace}

${MY_STAGE.MY_TASK.input.revision}

Output

response : capture la réponse complète

response.<RESOURCE> : ressource correspond à configMaps, deployments, endpoints, ingresses, jobs, namespaces, pods, replicaSets, replicationControllers, secrets, services, statefulSets, nodes, loadBalancers.

response.<RESOURCE>.<KEY> : la clé correspond à apiVersion, kind, metadata, spec

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.response.}

Tableau 7. Intégrer des applications de développement, de test et de déploiement
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
Bamboo
Input

plan : nom du plan

planKey : clé du plan

variables : variables à transmettre au plan

parameters : paramètres à transmettre au plan

${MY_STAGE.MY_TASK.input.plan}

${MY_STAGE.MY_TASK.input.planKey}

${MY_STAGE.MY_TASK.input.variables}

${MY_STAGE.MY_TASK.input.parameters} # Faire référence à tous les paramètres

${MY_STAGE.MY_TASK.input.parameters.param1} # Faire référence à la valeur de param1

Output

resultUrl : URL de la build résultante

buildResultKey : clé de la build résultante

buildNumber : numéro de la build

buildTestSummary : résumé de l'exécution des tests

successfulTestCount : résultat du test transmis

failedTestCount : résultat du test ayant échoué

skippedTestCount : résultat du test ignoré

artifacts: artifacts de la build

${MY_STAGE.MY_TASK.output.resultUrl}

${MY_STAGE.MY_TASK.output.buildResultKey}

${MY_STAGE.MY_TASK.output.buildNumber}

${MY_STAGE.MY_TASK.output.buildTestSummary} # Faire référence à tous les résultats

${MY_STAGE.MY_TASK.output.successfulTestCount} # Faire référence à un nombre de tests spécifique

${MY_STAGE.MY_TASK.output.buildNumber}

Jenkins
Input

job : nom du travail Jenkins

parameters : paramètres à transmettre à la tâche

${MY_STAGE.MY_TASK.input.job}

${MY_STAGE.MY_TASK.input.parameters} # Faire référence à tous les paramètres

${MY_STAGE.MY_TASK.input.parameters.param1} # Faire référence à la valeur d'un paramètre

Output

job : nom du travail Jenkins

jobId : ID du travail résultant, tel que 1234

jobStatus : état dans Jenkins

jobResults : collecte des résultats de la couverture de test/code

jobUrl : URL de l'exécution de la tâche résultante

${MY_STAGE.MY_TASK.output.job}

${MY_STAGE.MY_TASK.output.jobId}

${MY_STAGE.MY_TASK.output.jobStatus}

${MY_STAGE.MY_TASK.output.jobResults} # Faire référence à tous les résultats

${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # Faire référence aux résultats JUnit

${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # Faire référence aux résultats JaCoCo

${MY_STAGE.MY_TASK.output.jobUrl}

TFS
Input

projectCollection : collection de projets depuis TFS

teamProject : projet sélectionné dans la collection disponible

buildDefinitionId : ID de définition de build à exécuter

${MY_STAGE.MY_TASK.input.projectCollection}

${MY_STAGE.MY_TASK.input.teamProject}

${MY_STAGE.MY_TASK.input.buildDefinitionId}

Output

buildId : ID de build résultant

buildUrl : URL pour consulter le résumé de la build

logUrl : URL pour consulter les journaux

dropLocation : emplacement cible des artefacts, le cas échéant

${MY_STAGE.MY_TASK.output.buildId}

${MY_STAGE.MY_TASK.output.buildUrl}

${MY_STAGE.MY_TASK.output.logUrl}

${MY_STAGE.MY_TASK.output.dropLocation}

vRO
Input

workflowId : ID du workflow à exécuter

parameters : paramètres à transmettre au workflow

${MY_STAGE.MY_TASK.input.workflowId}

${MY_STAGE.MY_TASK.input.parameters}

Output

workflowExecutionId : ID de l'exécution du workflow

properties : propriétés de sortie de l'exécution du workflow

${MY_STAGE.MY_TASK.output.workflowExecutionId}

${MY_STAGE.MY_TASK.output.properties}

Tableau 8. Intégrer d'autres applications via une API
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
REST
Input

url : URL à appeler

action : méthode HTTP à utiliser

headers : en-têtes HTTP à transmettre

payload : charge utile de la demande

fingerprint : empreinte digitale à faire correspondre si l'URL est https

allowAllCerts : lorsque la valeur est définie sur true, il peut s'agir de n'importe quel certificat disposant de l'URL https

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.action}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.payload}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode : codes de réponse HTTP

responseHeaders : en-têtes de réponse HTTP

responseBody : format de chaîne de la réponse reçue

responseJson : réponse transversale si content-type est application/json

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseHeaders}

${MY_STAGE.MY_TASK.output.responseHeaders.header1} # Faire référence à l'en-tête de réponse « header1 »

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Faire référence à la réponse JSON

${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # Faire référence à l'objet imbriqué suivant le chemin d'accès a.b.c JSON dans la réponse

Interrogation
Input

url : URL à appeler

headers : en-têtes HTTP à transmettre

exitCriteria : critères à respecter pour que la tâche aboutisse ou échoue. Une paire clé-valeur de « success » → expression, « failure » → Expression :

pollCount : nombre d'itérations à effectuer. Un administrateur Code Stream peut définir le nombre d'interrogations sur un maximum de 10 000.

pollIntervalSeconds : nombre de secondes à attendre entre chaque itération. L'intervalle d'interrogation doit être supérieur ou égal à 60 secondes.

ignoreFailure : lorsque la valeur est définie sur true, ignore les échecs de réponse intermédiaire

fingerprint : empreinte digitale à faire correspondre si l'URL est https

allowAllCerts : lorsque la valeur est définie sur true, il peut s'agir de n'importe quel certificat disposant de l'URL https

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.exitCriteria}

${MY_STAGE.MY_TASK.input.pollCount}

${MY_STAGE.MY_TASK.input.pollIntervalSeconds}

${MY_STAGE.MY_TASK.input.ignoreFailure}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode : codes de réponse HTTP

responseBody : format de chaîne de la réponse reçue

responseJson : réponse transversale si content-type est application/json

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Refer to response as JSON

Tableau 9. Exécuter des scripts distants et définis par l'utilisateur
Tâche Scope Key Utilisation de SCOPE et KEY dans la tâche
PowerShell

Pour exécuter une tâche PowerShell, vous devez :

  • Disposer d'une session active vers un hôte Windows distant.
  • Si vous avez l'intention d'entrer une commande PowerShell en base 64, calculez d'abord la longueur de la commande globale. Pour plus d'informations, reportez-vous à la section Types de tâches disponibles dans Code Stream.
Input

host : adresse IP ou nom de domaine complet de la machine

username : nom d'utilisateur à utiliser pour la connexion

password : mot de passe à utiliser pour se connecter

useTLS : tentative de connexion https

trustCert : lorsque la valeur est définie sur true, approuve les certificats auto-signés

script : script à exécuter

workingDirectory : chemin d'accès au répertoire vers lequel basculer avant d'exécuter le script

environmentVariables : paire clé-valeur de variable d'environnement à définir

arguments : arguments à passer au script

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.useTLS}

${MY_STAGE.MY_TASK.input.trustCert}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

${MY_STAGE.MY_TASK.input.arguments}

Output

response : contenu du fichier $SCRIPT_RESPONSE_FILE

responseFilePath : valeur de $SCRIPT_RESPONSE_FILE

exitCode : code de sortie du processus

logFilePath : chemin d'accès au fichier contenant stdout

errorFilePath : chemin d'accès au fichier contenant stderr

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

SSH
Input

host : adresse IP ou nom de domaine complet de la machine

username : nom d'utilisateur à utiliser pour la connexion

password : mot de passe à utiliser pour se connecter (si vous le souhaitez, vous pouvez utiliser privateKey)

privateKey : PrivateKey à utiliser pour se connecter

passphrase : phrase secrète facultative pour déverrouiller privateKey

script : script à exécuter

workingDirectory : chemin d'accès au répertoire vers lequel basculer avant d'exécuter le script

environmentVariables : paire clé-valeur de la variable d'environnement à définir

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.privateKey}

${MY_STAGE.MY_TASK.input.passphrase}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

Output

response : contenu du fichier $SCRIPT_RESPONSE_FILE

responseFilePath : valeur de $SCRIPT_RESPONSE_FILE

exitCode : code de sortie du processus

logFilePath : chemin d'accès au fichier contenant stdout

errorFilePath : chemin d'accès au fichier contenant stderr

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

Utilisation d'une liaison de variable entre des tâches

Cet exemple montre comment utiliser des liaisons de variables dans vos tâches de pipeline.

Tableau 10. Exemples de formats de syntaxe
Exemple Syntaxe
Pour utiliser une valeur de sortie de tâche pour les notifications de pipeline et les propriétés de sortie de pipeline ${<Stage Key>.<Task Key>.output.<Task output key>}
Pour faire référence à la valeur de sortie de la tâche précédente comme entrée de la tâche actuelle ${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>}

Pour en savoir plus

Pour en savoir plus sur la liaison de variables dans les tâches, consultez :