Con le variabili e le espressioni, è possibile utilizzare i parametri di input e i parametri di output con le attività della pipeline. I parametri immessi associano l'attività della pipeline a una o più variabili, espressioni o condizioni e determinano il comportamento della pipeline durante l'esecuzione.
Le pipeline possono eseguire soluzioni di distribuzione del software semplici o complesse
Quando si associano le attività della pipeline tra loro, è possibile includere espressioni predefinite e complesse. Di conseguenza, la pipeline può eseguire soluzioni di distribuzione del software semplici o complesse.
Per creare i parametri nella pipeline, fare clic sulla scheda Input o Output e aggiungere una variabile immettendo il simbolo di dollaro $ e un'espressione. Ad esempio, questo parametro viene utilizzato come input di attività che richiama un URL: ${Stage0.Task3.input.URL}
.
Il formato delle associazioni di variabili utilizza componenti della sintassi denominati ambiti (scope) e chiavi (key). SCOPE
definisce il contesto come input o output e KEY
definisce i dettagli. Nell'esempio di parametro ${Stage0.Task3.input.URL}
, input
è il componente SCOPE
e l'URL è il componente KEY
.
Le proprietà di output di qualsiasi attività possono essere risolte in un numero qualsiasi di livelli nidificati di binding di variabili.
Per ulteriori informazioni sull'utilizzo delle associazioni delle variabili nelle pipeline, vedere Come utilizzare i binding delle variabili nelle pipeline di Code Stream.
Utilizzo delle espressioni di dollaro con gli ambiti e le chiavi per associare le attività della pipeline
È possibile associare le attività della pipeline utilizzando le espressioni nelle variabili del simbolo di dollaro. Le espressioni vengono immesse come ${SCOPE.KEY.<PATH>}
.
Per determinare il comportamento di un'attività di pipeline, in ogni espressione, SCOPE
è il contesto utilizzato da Code Stream. L'ambito cerca un valore KEY
, che definisce il dettaglio dell'azione eseguita dall'attività. Quando il valore di KEY
è un oggetto nidificato, è possibile fornire un valore PATH
facoltativo.
Questi esempi descrivono SCOPE
e KEY
, e illustrano come usarli nella pipeline.
Tabella 1.
Utilizzo di SCOPE e KEY
SCOPE |
Scopo dell'espressione ed esempio |
KEY |
Come utilizzare SCOPE e KEY nella pipeline |
input |
Proprietà di input di una pipeline: ${input.input1} |
Nome della proprietà di input |
Per fare riferimento alla proprietà di input di una pipeline in un'attività, utilizzare il seguente formato:
tasks:
mytask:
type: REST
input:
url: ${input.url}
action: get
input:
url: https://www.vmware.com
|
output |
Proprietà di output di una pipeline: ${output.output1} |
Nome della proprietà di output |
Per fare riferimento a una proprietà di output per l'invio di una notifica, utilizzare il seguente formato:
notifications:
email:
- endpoint: MyEmailEndpoint
subject: "Deployment Successful"
event: COMPLETED
to:
- [email protected]
body: |
Pipeline deployed the service successfully. Refer ${output.serviceURL}
|
task input |
Input in un'attività: ${MY_STAGE.MY_TASK.input.SOMETHING} |
Indica l'input di un'attività in una notifica |
Quando viene avviato un processo Jenkins, può fare riferimento al nome del processo attivato dall'input dell'attività. In questo caso, inviare una notifica utilizzando il seguente formato:
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 |
Output di un'attività: ${MY_STAGE.MY_TASK.output.SOMETHING} |
Indica l'output di un'attività in un'attività successiva |
Per fare riferimento all'output dell'attività della pipeline 1 nell'attività 2, utilizzare il seguente formato:
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 |
Variabile: ${var.myVariable} |
Fa riferimento alla variabile in un endpoint |
Per fare riferimento a una variabile segreta in un endpoint per una password, utilizzare il seguente formato:
---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
url: https://jenkins.example.com
username: jenkinsUser
password: ${var.jenkinsPassword}
|
var |
Variabile: ${var.myVariable} |
Fa riferimento alla variabile in una pipeline |
Per fare riferimento alla variabile in un URL della pipeline, utilizzare il seguente formato:
tasks:
task1:
type: REST
input:
action: get
url: ${var.MY_SERVER_URL}
|
task status |
Stato di un'attività: ${MY_STAGE.MY_TASK.status} ${MY_STAGE.MY_TASK.statusMessage} |
|
|
stage status |
Stato di una fase: ${MY_STAGE.status} ${MY_STAGE.statusMessage} |
|
|
Espressioni predefinite
È possibile utilizzare variabili con espressioni nella pipeline. In questo riepilogo sono incluse le espressioni predefinite che è possibile utilizzare.
Espressione |
Descrizione |
${comments} |
Commenti forniti quando al momento della richiesta di esecuzione della pipeline. |
${duration} |
Durata dell'esecuzione della pipeline. |
${endTime} |
Ora di fine dell'esecuzione della pipeline in UTC, se conclusa. |
${executedOn} |
Come l'ora iniziale, l'ora di inizio dell'esecuzione della pipeline in UTC. |
${executionId} |
ID dell'esecuzione della pipeline. |
${executionUrl} |
URL che passa all'esecuzione della pipeline nell'interfaccia utente. |
${name} |
Nome della pipeline. |
${requestBy} |
Nome dell'utente che ha richiesto l'esecuzione. |
${stageName} |
Nome della fase corrente, quando utilizzato nell'ambito di una fase. |
${startTime} |
Ora di inizio dell'esecuzione della pipeline in UTC. |
${status} |
Stato dell'esecuzione. |
${statusMessage} |
Messaggio di stato dell'esecuzione della pipeline. |
${taskName} |
Nome dell'attività corrente, quando utilizzata in un input o una notifica di attività. |
Utilizzo di SCOPE e KEY nelle attività della pipeline
È possibile utilizzare espressioni con una qualsiasi delle attività della pipeline supportate. In questi esempi viene illustrato come definire SCOPE
e KEY
, quindi confermare la sintassi. Gli esempi di codice utilizzano MY_STAGE
e MY_TASK
come nomi della fase e dell'attività della pipeline.
Per ulteriori informazioni sulle attività disponibili, vedere Tipi di attività disponibili in Code Stream.
Tabella 2.
Attività di gating
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
Operazione utente |
|
Input |
summary : riepilogo della richiesta per Operazione utente description : descrizione della richiesta per Operazione utente approvers : elenco degli indirizzi email degli approvatori, in cui ciascuna voce può essere una variabile con una virgola, oppure utilizzare un punto e virgola per gli indirizzi e-mail separati approverGroups : elenco degli indirizzi del gruppo di approvatori per la piattaforma e l'identità sendemail : facoltativamente, invia una notifica tramite e-mail su richiesta o una risposta quando è impostata su true expirationInDays : numero di giorni che rappresenta l'ora di scadenza della richiesta |
${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 : stringa esadecimale di sei cifre che rappresenta la richiesta respondedBy : nome dell'account della persona che ha approvato/rifiutato l'operazione utente respondedByEmail : indirizzo e-mail della persona che ha risposto comments : commenti forniti durante la risposta |
${MY_STAGE.MY_TASK.output.index} ${MY_STAGE.MY_TASK.output.respondedBy} ${MY_STAGE.MY_TASK.output.respondedByEmail} ${MY_STAGE.MY_TASK.output.comments} |
Condizione |
|
|
Input |
condition : condizione da valutare. Quando la condizione viene valutata su true, contrassegna l'attività come completata, mentre le altre risposte non riescono a eseguire l'attività |
${MY_STAGE.MY_TASK.input.condition} |
|
Output |
result : risultato dopo la valutazione |
${MY_STAGE.MY_TASK.output.response} |
Tabella 3.
Attività della pipeline
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
Pipeline |
|
Input |
name : nome della pipeline da eseguire inputProperties : proprietà di input da trasmettere all'esecuzione della pipeline nidificata |
${MY_STAGE.MY_TASK.input.name} ${MY_STAGE.MY_TASK.input.inputProperties} # Fa riferimento a tutte le proprietà ${MY_STAGE.MY_TASK.input.inputProperties.input1} # Fa riferimento al valore di input1 |
|
Output |
executionStatus : stato dell'esecuzione della pipeline executionIndex : indice dell'esecuzione della pipeline outputProperties : proprietà di output dell'esecuzione di una pipeline |
${MY_STAGE.MY_TASK.output.executionStatus} ${MY_STAGE.MY_TASK.output.executionIndex} ${MY_STAGE.MY_TASK.output.outputProperties} # Fa riferimento a tutte le proprietà ${MY_STAGE.MY_TASK.output.outputProperties.output1} # Fa riferimento al valore di output1 |
Tabella 4.
Automazione delle attività di integrazione continua
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
CI |
|
Input |
steps : un set di stringhe, che rappresentano i comandi da eseguire export : le variabili di ambiente da conservare dopo l'esecuzione delle fasi artifacts : percorsi degli artefatti da conservare in un percorso condiviso process : set di elementi di configurazione per l'elaborazione 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} # Fa riferimento al percorso della prima configurazione |
|
Output |
exports : coppia chiave-valore, che rappresenta le variabili di ambiente esportate dal valore export di input artifacts : percorso degli artefatti conservati correttamente processResponse : set di risultati elaborati per l'input process |
${MY_STAGE.MY_TASK.output.exports} # Fa riferimento a tutte le esportazioni ${MY_STAGE.MY_TASK.output.exports.myvar} # Fa riferimento al valore di myvar ${MY_STAGE.MY_TASK.output.artifacts} ${MY_STAGE.MY_TASK.output.processResponse} ${MY_STAGE.MY_TASK.output.processResponse[0].result} # Risultato della prima configurazione del processo |
Personalizzato |
|
Input |
name : nome dell'integrazione personalizzata version : una versione dell'integrazione personalizzata, rilasciata oppure obsoleta properties : proprietà da inviare all'integrazione personalizzata |
${MY_STAGE.MY_TASK.input.name} ${MY_STAGE.MY_TASK.input.version} ${MY_STAGE.MY_TASK.input.properties} # Fa riferimento a tutte le proprietà ${MY_STAGE.MY_TASK.input.properties.property1} # Fa riferimento al valore di property1 |
|
Output |
properties : proprietà di output dalla risposta di integrazione personalizzata |
${MY_STAGE.MY_TASK.output.properties} # Fa riferimento a tutte le proprietà ${MY_STAGE.MY_TASK.output.properties.property1} # Fa riferimento al valore di property1 |
Tabella 5.
Automazione delle attività di distribuzione continua: modello cloud
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
Modello cloud |
|
|
Input |
action : uno di createDeployment, updateDeployment, deleteDeployment o rollbackDeployment blueprintInputParams : utilizzato per le azioni crea distribuzione e aggiorna distribuzione allowDestroy : le macchine possono essere distrutte nel processo di distribuzione dell'aggiornamento. CREATE_DEPLOYMENT
blueprintName : nome del modello di cloud
blueprintVersion : versione del modello cloud
OPPURE
fileUrl : URL del codice YAML del modello cloud remoto, dopo aver selezionato un server GIT.
UPDATE_DEPLOYMENT Una di queste combinazioni:
blueprintName : nome del modello di cloud
blueprintVersion : versione del modello cloud
OPPURE
fileUrl : URL del codice YAML del modello cloud remoto, dopo aver selezionato un server GIT.
------
deploymentId : ID della distribuzione
OPPURE
deploymentName : nome della distribuzione
------ DELETE_DEPLOYMENT
deploymentId : ID della distribuzione
OPPURE
deploymentName : nome della distribuzione
ROLLBACK_DEPLOYMENT Una di queste combinazioni:
deploymentId : ID della distribuzione
OPPURE
deploymentName : nome della distribuzione
------
blueprintName : nome del modello di cloud
rollbackVersion : versione in cui eseguire il rollback
|
|
|
Output |
|
Parametri che possono essere associati ad altre attività o all'output di una pipeline:
- È possibile accedere al nome della distribuzione come ${Stage0.Task0.output.deploymentName}
- È possibile accedere all'ID della distribuzione come ${Stage0.Task0.output.deploymentId}
- Dettagli distribuzione è un oggetto complesso ed è possibile accedere ai dettagli interni utilizzando i risultati JSON.
Per accedere a qualsiasi proprietà, utilizzare l'operatore punto per seguire la gerarchia JSON. Ad esempio, per accedere all'indirizzo della risorsa Cloud_Machine_1[0], il binding $ è: ${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address} Analogamente, per la caratteristica, il binding $ è: ${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor} Nell'interfaccia utente di Code Stream, è possibile ottenere i binding $ per qualsiasi proprietà.
- Nell'area della proprietà di output dell'attività, fare clic su VISUALIZZA JSON DI OUTPUT.
- Per trovare il binding $, immettere una proprietà qualsiasi.
- Fare clic sull'icona di ricerca, che mostra il binding $ corrispondente.
|
Output JSON di esempio:
Oggetto dettagli della distribuzione di esempio:
{
"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"
}
Tabella 6.
Automazione delle attività di distribuzione continua: Kubernetes
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
Kubernetes |
|
Input |
action : uno di GET, CREATE, APPLY, DELETE, ROLLBACK
timeout : timeout generale per qualsiasi azione
filterByLabel : etichetta aggiuntiva in base a cui applicare il filtro per l'azione GET utilizzando labelSelector di K8S
GET, CREATE, DELETE, APPLY
yaml : YAML inline da elaborare e inviare a Kubernetes
parameters : coppia KEY, VALUE. Sostituire $$KEY con VALUE nell'area di input di YAML inline
filePath : percorso relativo dall'endpoint Git di SCM, se specificato, da cui recuperare YAML
scmConstants : coppia KEY, VALUE - Sostituire $${KEY} con VALUE in YAML recuperato da SCM.
continueOnConflict : quando è impostata su true, se è già presente una risorsa, l'attività continua.
ROLLBACK
resourceType : tipo di risorsa da sottoporre a rollback
resourceName : nome della risorsa da sottoporre a rollback
namespace : spazio dei nomi in cui deve essere eseguito il rollback
revision : revisione in cui eseguire il rollback
|
${MY_STAGE.MY_TASK.input.action} # Determina l'azione da eseguire. ${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 : acquisisce l'intera risposta response.<RESOURCE> : la risorsa corrisponde a configMaps, deployments, endpoints, ingresses, jobs, namespaces, pods, replicaSets, replicationControllers, secrets, services, statefulSets, nodes, loadBalancers. response.<RESOURCE>.<KEY> : la chiave corrisponde a uno dei valori apiVersion, kind, metadata e spec |
${MY_STAGE.MY_TASK.output.response} ${MY_STAGE.MY_TASK.output.response.} |
Tabella 7.
Integrare applicazioni di sviluppo, test e distribuzione
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
Bamboo |
|
Input |
plan : nome del piano planKey : chiave del piano variables : variabili da trasmettere al piano parameters : parametri da trasmettere al piano |
${MY_STAGE.MY_TASK.input.plan} ${MY_STAGE.MY_TASK.input.planKey} ${MY_STAGE.MY_TASK.input.variables} ${MY_STAGE.MY_TASK.input.parameters} # Fa riferimento a tutti i parametri ${MY_STAGE.MY_TASK.input.parameters.param1} # Fa riferimento al valore di param1 |
|
Output |
resultUrl : URL della creazione risultante buildResultKey : chiave della creazione risultante buildNumber : numero della creazione buildTestSummary : riepilogo dei test eseguiti successfulTestCount : risultato del test trasmesso failedTestCount : risultato del test non riuscito skippedTestCount : risultato del test ignorato artifacts : artefatti dalla creazione |
${MY_STAGE.MY_TASK.output.resultUrl} ${MY_STAGE.MY_TASK.output.buildResultKey} ${MY_STAGE.MY_TASK.output.buildNumber} ${MY_STAGE.MY_TASK.output.buildTestSummary} # Fa riferimento a tutti i risultati ${MY_STAGE.MY_TASK.output.successfulTestCount} # Fa riferimento al numero di test specifico ${MY_STAGE.MY_TASK.output.buildNumber} |
Jenkins |
|
Input |
job : nome del processo Jenkins parameters : parametri da trasmettere al processo |
${MY_STAGE.MY_TASK.input.job} ${MY_STAGE.MY_TASK.input.parameters} # Fa riferimento a tutti i parametri ${MY_STAGE.MY_TASK.input.parameters.param1} # Fa riferimento al valore di un parametro |
|
Output |
job : nome del processo Jenkins jobId : ID del processo risultante, ad esempio 1234 jobStatus : stato in Jenkins jobResults : raccolta dei risultati di test/code coverage jobUrl : URL del processo eseguito risultante |
${MY_STAGE.MY_TASK.output.job} ${MY_STAGE.MY_TASK.output.jobId} ${MY_STAGE.MY_TASK.output.jobStatus} ${MY_STAGE.MY_TASK.output.jobResults} # Fa riferimento a tutti i risultati ${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # Fa riferimento ai risultati di JUnit ${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # Fa riferimento ai risultati di JaCoCo ${MY_STAGE.MY_TASK.output.jobUrl} |
TFS |
|
Input |
projectCollection : raccolta di progetti da TFS teamProject : progetto selezionato dalla raccolta disponibile buildDefinitionId : ID di definizione della creazione da eseguire |
${MY_STAGE.MY_TASK.input.projectCollection } ${MY_STAGE.MY_TASK.input.teamProject} ${MY_STAGE.MY_TASK.input.buildDefinitionId} |
|
Output |
buildId : ID della creazione risultante buildUrl : URL per visitare il riepilogo della creazione logUrl : URL per visitare i registri dropLocation : posizione di rilascio degli artefatti, se presenti |
${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 del workflow da eseguire parameters : parametri da trasmettere al workflow |
${MY_STAGE.MY_TASK.input.workflowId} ${MY_STAGE.MY_TASK.input.parameters} |
|
Output |
workflowExecutionId : ID dell'esecuzione del workflow properties : proprietà di output dall'esecuzione del workflow |
${MY_STAGE.MY_TASK.output.workflowExecutionId} ${MY_STAGE.MY_TASK.output.properties} |
Tabella 8.
Integrare altre applicazioni tramite un'API
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
REST |
|
Input |
url : URL da chiamare action : metodo HTTP da utilizzare headers : intestazioni HTTP da trasmettere payload : payload della richiesta fingerprint : l'impronta digitale da abbinare per un URL HTTPS allowAllCerts : se impostata su true, può essere qualsiasi certificato con un URL di 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 : codice di risposta HTTP responseHeaders : intestazioni di risposta HTTP responseBody : formato stringa della risposta ricevuta responseJson : risposta attraversabile se content-type è application/json |
${MY_STAGE.MY_TASK.output.responseCode} ${MY_STAGE.MY_TASK.output.responseHeaders} ${MY_STAGE.MY_TASK.output.responseHeaders.header1} # Fa riferimento all'intestazione della risposta 'header1' ${MY_STAGE.MY_TASK.output.responseBody} ${MY_STAGE.MY_TASK.output.responseJson} # Fa riferimento alla risposta come JSON ${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # Fa riferimento all'oggetto nidificato che segue il percorso a. b. c JSON in risposta |
Polling |
|
Input |
url : URL da chiamare headers : intestazioni HTTP da trasmettere exitCriteria : criteri da soddisfare affinché l'attività abbia esito positivo o negativo. Una coppia chiave-valore di 'success' → Expression, 'failure' → Expression pollCount : numero di iterazioni da eseguire. Un amministratore di Code Stream può impostare il conteggio di polling fino a un massimo di 10000. pollIntervalSeconds : numero di secondi da attendere tra ciascuna iterazione. L'intervallo di polling deve essere maggiore o uguale a 60 secondi. ignoreFailure : quando impostata su true, ignora gli errori di risposta intermedi fingerprint : l'impronta digitale da abbinare per un URL HTTPS allowAllCerts : se impostata su true, può essere qualsiasi certificato con un URL di 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 : codice di risposta HTTP responseBody : formato stringa della risposta ricevuta responseJson : risposta attraversabile se content-type è 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 |
Tabella 9.
Eseguire script remoti e definiti dall'utente
Attività |
Scope |
Key |
Come utilizzare SCOPE e KEY nell'attività |
PowerShell Per eseguire un'attività di PowerShell, è necessario:
- Avere una sessione attiva in un host Windows remoto.
- Se si desidera immettere un comando PowerShell base64, calcolare prima la lunghezza complessiva del comando. Per i dettagli, vedere Tipi di attività disponibili in Code Stream.
|
|
Input |
host : indirizzo IP o nome host della macchina username : nome utente da utilizzare da utilizzare per la connessione password : password da utilizzare per la connessione useTLS : tentativo di connessione https trustCert : quando è impostata su true, considera attendibili i certificati autofirmati script : script da eseguire workingDirectory : percorso della directory a cui passare prima di eseguire lo script environmentVariables : una coppia chiave-valore della variabile di ambiente da impostare arguments : argomenti di trasmettere allo 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 : contenuto del file $SCRIPT_RESPONSE_FILE responseFilePath : valore di $SCRIPT_RESPONSE_FILE exitCode : codice di uscita del processo logFilePath : percorso del file che contiene stdout errorFilePath : percorso del file che contiene 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 : indirizzo IP o nome host della macchina username : nome utente da utilizzare da utilizzare per la connessione password : password da utilizzare per la connessione (facoltativamente può utilizzare privateKey) privateKey : PrivateKey da utilizzare per la connessione passphrase : passphrase facoltativa per sbloccare privateKey script : script da eseguire workingDirectory : percorso della directory a cui passare prima di eseguire lo script environmentVariables : coppia chiave-valore della variabile di ambiente da impostare |
${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 : contenuto del file $SCRIPT_RESPONSE_FILE responseFilePath : valore di $SCRIPT_RESPONSE_FILE exitCode : codice di uscita del processo logFilePath : percorso del file che contiene stdout errorFilePath : percorso del file che contiene 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} |
Come utilizzare un binding di variabili tra le attività
In questo esempio viene illustrato come utilizzare le associazioni di variabili nelle attività della pipeline.
Tabella 10.
Formati di sintassi di esempio
Esempio |
Sintassi |
Per utilizzare un valore di output dell'attività per le notifiche della pipeline e le proprietà di output della pipeline |
${<Stage Key>.<Task Key>.output.<Task output key>} |
Per fare riferimento al valore di output dell'attività precedente come input per l'attività corrente |
${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>} |
Ulteriori informazioni
Per ulteriori informazioni sulle variabili di binding nelle attività, vedere: