変数と式により、パイプライン タスクで入力パラメータと出力パラメータを使用できます。入力するパラメータにより、パイプライン タスクが 1 つ以上の変数、式、または条件にバインドされ、実行時のパイプラインの動作が決定されます。
パイプラインではシンプルなソフトウェア配信ソリューションから複雑なソフトウェア配信ソリューションまで実行可能
パイプライン タスクをバインドするときには、デフォルトの式と複雑な式を含めることができます。このため、パイプラインでは、シンプルなソフトウェア配信ソリューションを実行することも、複雑なソフトウェア配信ソリューションを実行することもできます。
パイプラインにパラメータを作成するには、[入力] または [出力] タブをクリックし、ドル記号 $ と式を入力して変数を追加します。たとえば、このパラメータは、URL を呼び出すタスクの入力として使用されます:${Stage0.Task3.input.URL}
。
変数のバインドの形式では、SCOPE(範囲)と KEY(キー)と呼ばれる構文コンポーネントを使用します。SCOPE
はコンテキストを入力または出力として定義し、KEY
は詳細を定義します。パラメータの例 ${Stage0.Task3.input.URL}
では、SCOPE
は input
、KEY
は URL です。
いずれのタスクの出力プロパティも、任意のレベル数にネストされた変数バインドとして解決できます。
パイプラインで変数のバインドを使用する方法については、Code Stream パイプラインで変数のバインドを使用する方法を参照してください。
範囲とキーを含むドル記号の式を使用したパイプライン タスクのバインド
ドル記号変数の式を使用してパイプライン タスクをバインドできます。式は、${SCOPE.KEY.<PATH>}
という形式で入力します。
パイプライン タスクの動作を決定するために、各式の SCOPE
は Code Stream が使用するコンテキストとなります。この範囲に対して、タスクで実行されるアクションの詳細を定義する KEY
が検索されます。KEY
の値がネストされたオブジェクトの場合は、オプションの PATH
を指定できます。
これらの例では、SCOPE
と KEY
について説明し、パイプラインでこれらを使用する方法を示します。
表 1.
SCOPE と KEY の使用
SCOPE |
式の目的と例 |
KEY |
パイプラインで SCOPE と KEY を使用する方法 |
[input] |
パイプラインの入力プロパティ: ${input.input1} |
入力プロパティの名前 |
タスク内のパイプラインの入力プロパティを参照するには、次の形式を使用します。
tasks:
mytask:
type: REST
input:
url: ${input.url}
action: get
input:
url: https://www.vmware.com
|
[output] |
パイプラインの出力プロパティ: ${output.output1} |
出力プロパティの名前 |
通知を送信するための出力プロパティを参照するには、次の形式を使用します。
notifications:
email:
- endpoint: MyEmailEndpoint
subject: "Deployment Successful"
event: COMPLETED
to:
- [email protected]
body: |
Pipeline deployed the service successfully. Refer ${output.serviceURL}
|
[task input] |
タスクへの入力: ${MY_STAGE.MY_TASK.input.SOMETHING} |
通知内にタスクの入力を示します |
開始された Jenkins ジョブからは、タスクの入力からトリガーされたジョブの名前を参照できます。この場合、次の形式で通知を送信します。
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] |
タスクの出力: ${MY_STAGE.MY_TASK.output.SOMETHING} |
後続のタスクでのタスクの出力を示します |
パイプライン タスク 2 からパイプライン タスク 1 の出力を参照するには、次の形式を使用します。
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] |
変数: ${var.myVariable} |
エンドポイント内の変数の参照 |
パスワードに関してエンドポイント内のシークレット変数を参照するには、次の形式を使用します。
---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
url: https://jenkins.example.com
username: jenkinsUser
password: ${var.jenkinsPassword}
|
[var] |
変数: ${var.myVariable} |
パイプライン内の変数の参照 |
パイプライン URL 内の変数を参照するには、次の形式を使用します。
tasks:
task1:
type: REST
input:
action: get
url: ${var.MY_SERVER_URL}
|
[task status] |
タスクのステータス: ${MY_STAGE.MY_TASK.status} ${MY_STAGE.MY_TASK.statusMessage} |
|
|
[stage status] |
ステージのステータス: ${MY_STAGE.status} ${MY_STAGE.statusMessage} |
|
|
デフォルトの式
パイプラインでは、式に変数を使用できます。このサマリに、使用できるデフォルトの式を示します。
式 |
説明 |
${comments} |
パイプラインの実行要求時に提供されるコメント。 |
${duration} |
パイプラインの実行に要した時間。 |
${endTime} |
完了した場合は、パイプライン実行の終了時刻 (UTC)。 |
${executedOn} |
開始時刻と同じ。パイプライン実行が開始された時刻 (UTC)。 |
${executionId} |
パイプライン実行の ID。 |
${executionUrl} |
ユーザー インターフェイス内のパイプライン実行に移動する URL。 |
${name} |
パイプラインの名前。 |
${requestBy} |
タスクを申請したユーザーの名前。 |
${stageName} |
ステージの範囲で使用される、現在のステージの名前。 |
${startTime} |
パイプライン実行の開始時刻 (UTC)。 |
${status} |
実行のステータス。 |
${statusMessage} |
パイプライン実行のステータス メッセージ。 |
${taskName} |
タスクの入力または通知で使用される、現在のタスクの名前。 |
パイプライン タスクでの SCOPE と KEY の使用
式は、サポートされているパイプライン タスクのいずれでも使用できます。次の例では、SCOPE
と KEY
の定義方法を示し、構文を確認します。コード例では、パイプライン ステージとタスク名として MY_STAGE
と MY_TASK
を使用しています。
使用可能なタスクの詳細については、Code Stream で使用可能なタスクのタイプを参照してください。
表 2.
タスクのゲート
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[ユーザー操作] |
|
Input |
summary :ユーザー操作の申請のサマリ description :ユーザー操作の申請の説明 approvers :承認者のメール アドレスのリスト。各エントリは、カンマを使用した変数にすることができます。また、個々のメール アドレスをセミコロンで区切ることができます approverGroups :プラットフォームと ID の承認者グループ アドレスのリスト sendemail :true に設定されている場合、オプションで、申請または応答時に E メール通知を送信します expirationInDays :申請の有効期限を表す日数 |
${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 :申請を表す 6 桁の 16 進数の文字列 respondedBy :ユーザー操作を承認または拒否したユーザーのアカウント名 respondedByEmail :応答者のメール アドレス comments :応答時に返されるコメント |
${MY_STAGE.MY_TASK.output.index} ${MY_STAGE.MY_TASK.output.respondedBy} ${MY_STAGE.MY_TASK.output.respondedByEmail} ${MY_STAGE.MY_TASK.output.comments} |
[条件] |
|
|
Input |
condition :評価する条件。条件が true に評価されるとタスクは完了とマークされ、それ以外の応答ではタスクは失敗します |
${MY_STAGE.MY_TASK.input.condition} |
|
Output |
result :評価による結果 |
${MY_STAGE.MY_TASK.output.response} |
表 3.
パイプライン タスク
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[パイプライン] |
|
Input |
name :実行するパイプラインの名前 inputProperties :ネストされたパイプライン実行に渡す入力プロパティ |
${MY_STAGE.MY_TASK.input.name} ${MY_STAGE.MY_TASK.input.inputProperties} # すべてのプロパティを参照 ${MY_STAGE.MY_TASK.input.inputProperties.input1} # input1 の値を参照 |
|
Output |
executionStatus :パイプライン実行のステータス executionIndex :パイプライン実行のインデックス outputProperties :パイプライン実行の出力プロパティ |
${MY_STAGE.MY_TASK.output.executionStatus} ${MY_STAGE.MY_TASK.output.executionIndex} ${MY_STAGE.MY_TASK.output.outputProperties} # すべてのプロパティを参照 ${MY_STAGE.MY_TASK.output.outputProperties.output1} # output1 の値を参照 |
表 4.
継続的インテグレーション タスクの自動化
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[CI] |
|
Input |
steps :実行するコマンドを表す一連の文字列 export :手順の実行後も保持する環境変数 artifacts :共有パスに保持するアーティファクトのパス process :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} # 最初の構成のパスを参照 |
|
Output |
export :入力 exports からエクスポートされる環境変数を表すキーと値のペア artifacts :正常に保存されたアーティファクトへのパス process :入力 processResponse の処理結果のセット |
${MY_STAGE.MY_TASK.output.exports} # すべてのエクスポートを参照 ${MY_STAGE.MY_TASK.output.exports.myvar} # myvar の値を参照 ${MY_STAGE.MY_TASK.output.artifacts} ${MY_STAGE.MY_TASK.output.processResponse} ${MY_STAGE.MY_TASK.output.processResponse[0].result} # 最初のプロセス構成の結果 |
[カスタム] |
|
Input |
name :カスタム統合の名前 version :カスタム統合のバージョン、リリース済みまたは廃止済み properties :カスタム統合に送信するプロパティ |
${MY_STAGE.MY_TASK.input.name} ${MY_STAGE.MY_TASK.input.version} ${MY_STAGE.MY_TASK.input.properties} # すべてのプロパティを参照 ${MY_STAGE.MY_TASK.input.properties.property1} # property1 の値を参照 |
|
Output |
properties :カスタム統合の応答からの出力プロパティ |
${MY_STAGE.MY_TASK.output.properties} # すべてのプロパティを参照 ${MY_STAGE.MY_TASK.output.properties.property1} # property1 の値を参照 |
表 5.
継続的展開タスクの自動化:クラウド テンプレート
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[クラウド テンプレート] |
|
|
Input |
action :[createDeployment]、[updateDeployment]、[deleteDeployment]、[rollbackDeployment] のいずれか blueprintInputParams : [展開の作成] アクションおよび [展開の更新] アクションで使用されます。 allowDestroy :更新の展開プロセスでマシンを破棄できます。 [CREATE_DEPLOYMENT]
blueprintName :クラウド テンプレートの名前
blueprintVersion :クラウド テンプレートのバージョン
または
fileUrl :Git サーバを選択した後の、リモート クラウド テンプレート YAML の URL。
[UPDATE_DEPLOYMENT] 次のいずれかの組み合わせ:
blueprintName :クラウド テンプレートの名前
blueprintVersion :クラウド テンプレートのバージョン
または
fileUrl :Git サーバを選択した後の、リモート クラウド テンプレート YAML の URL。
------
または
------ [DELETE_DEPLOYMENT]
または
[ROLLBACK_DEPLOYMENT] 次のいずれかの組み合わせ:
または
------
blueprintName :クラウド テンプレートの名前
rollbackVersion :ロールバックするバージョン
|
|
|
Output |
|
他のタスクまたはパイプラインの出力にバインドできるパラメータ:
- 展開名は、${Stage0.Task0.output.deploymentName} としてアクセスできます。
- 展開 ID は、${Stage0.Task0.output.deploymentId} としてアクセスできます。
- 展開の詳細は複雑なオブジェクトです。内部の詳細には、JSON の結果を使用してアクセスできます。
任意のプロパティにアクセスするには、ドット演算子を使用して JSON 階層を指定します。たとえば、Cloud_Machine_1[0] というリソースのアドレスにアクセスする場合、[$] バインディングは次のとおりです。 ${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address} 同様に、フレーバーの場合の [$] バインディングは次のとおりです。 ${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor} Code Stream のユーザー インターフェイスでは、任意のプロパティについて [$] バインディングを取得できます。
- タスクの出力プロパティ領域で、[JSON 出力の表示] をクリックします。
- [$] バインディングを見つけるために、任意のプロパティを入力します。
- 検索アイコンをクリックすると、対応する [$] バインディングが表示されます。
|
JSON 出力の例:
展開の詳細オブジェクトの例:
{
"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"
}
表 6.
継続的展開タスクの自動化:Kubernetes
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[Kubernetes] |
|
Input |
action :[GET]、[CREATE]、[APPLY]、[DELETE]、[ROLLBACK] のいずれか
timeout :任意のアクションの全体的なタイムアウト
filterByLabel :K8S labelSelector を使用して、アクション GET に対してフィルタを適用する追加ラベル
[GET、CREATE、DELETE、APPLY]
yaml :処理して Kubernetes に送信するインライン YAML
parameters :KEY と VALUE のペア - インライン YAML 入力領域で $$KEY を VALUE に置き換える
filePath :YAML の取得元となる、SCM Git エンドポイントからの相対パス(指定されている場合)
scmConstants :KEY と VALUE のペア - SCM 経由で取得された YAML で $${KEY} を VALUE に置き換える
continueOnConflict :true に設定すると、リソースがすでにある場合、タスクは続行される
[ROLLBACK]
resourceType :ロールバックするリソース タイプ
resourceName :ロールバックするリソース名
namespace :ロールバックを実行する必要がある名前空間
revision :ロールバックするリビジョン
|
${MY_STAGE.MY_TASK.input.action} # 実行するアクションを決定します。 ${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 :応答全体をキャプチャする response.<RESOURCE> :リソースは configMaps、deployments、endpoints、ingresses、jobs、namespaces、pods、replicaSets、replicationControllers、secrets、services、statefulSets、nodes、loadBalancers に対応します。 response.<RESOURCE>.<KEY> :キーは apiVersion、kind、metadata、spec のいずれかに対応します。 |
${MY_STAGE.MY_TASK.output.response} ${MY_STAGE.MY_TASK.output.response.} |
表 7.
開発、テスト、展開アプリケーションの統合
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[Bamboo] |
|
Input |
plan :プランの名前 planKey :プラン キー variables :プランに渡される変数 parameters :プランに渡されるパラメータ |
${MY_STAGE.MY_TASK.input.plan} ${MY_STAGE.MY_TASK.input.planKey} ${MY_STAGE.MY_TASK.input.variables} ${MY_STAGE.MY_TASK.input.parameters} # すべてのパラメータを参照 ${MY_STAGE.MY_TASK.input.parameters.param1} # param1 の値を参照 |
|
Output |
resultUrl :結果のビルドの URL buildResultKey :結果のビルドのキー buildNumber :ビルド番号 buildTestSummary :実行されるテストのサマリ successfulTestCount :合格したテスト結果 failedTestCount :失敗したテスト結果 skippedTestCount :スキップされたテスト結果 artifacts :ビルドからのアーティファクト |
${MY_STAGE.MY_TASK.output.resultUrl} ${MY_STAGE.MY_TASK.output.buildResultKey} ${MY_STAGE.MY_TASK.output.buildNumber} ${MY_STAGE.MY_TASK.output.buildTestSummary} # すべての結果を参照 ${MY_STAGE.MY_TASK.output.successfulTestCount} # 特定のテスト カウントを参照 ${MY_STAGE.MY_TASK.output.buildNumber} |
[Jenkins] |
|
Input |
job :Jenkins ジョブの名前 parameters :ジョブに渡されるパラメータ |
${MY_STAGE.MY_TASK.input.job} ${MY_STAGE.MY_TASK.input.parameters} # すべてのパラメータを参照 ${MY_STAGE.MY_TASK.input.parameters.param1} # パラメータの値を参照 |
|
Output |
job :Jenkins ジョブの名前 jobId :結果のジョブの ID(1234 など) jobStatus :Jenkins のステータス jobResults :テスト/コード カバレッジ結果のコレクション jobUrl :結果のジョブの実行 URL |
${MY_STAGE.MY_TASK.output.job} ${MY_STAGE.MY_TASK.output.jobId} ${MY_STAGE.MY_TASK.output.jobStatus} ${MY_STAGE.MY_TASK.output.jobResults} # すべての結果を参照 ${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # JUnit の結果を参照 ${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # JaCoCo の結果を参照 ${MY_STAGE.MY_TASK.output.jobUrl} |
[TFS] |
|
Input |
projectCollection :TFS からのプロジェクト コレクション teamProject :使用可能なコレクションから選択したプロジェクト buildDefinitionId :実行するビルド定義 ID |
${MY_STAGE.MY_TASK.input.projectCollection } ${MY_STAGE.MY_TASK.input.teamProject} ${MY_STAGE.MY_TASK.input.buildDefinitionId} |
|
Output |
buildId :結果のビルド ID buildUrl :ビルドのサマリへのアクセス URL logUrl :ログの参照 URL dropLocation :アーティファクトのドロップ場所(ある場合) |
${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 parameters :ワークフローに渡されるパラメータ |
${MY_STAGE.MY_TASK.input.workflowId} ${MY_STAGE.MY_TASK.input.parameters} |
|
Output |
workflowExecutionId :ワークフロー実行の ID properties :ワークフロー実行からの出力プロパティ |
${MY_STAGE.MY_TASK.output.workflowExecutionId} ${MY_STAGE.MY_TASK.output.properties} |
表 8.
API を使用した他のアプリケーションの統合
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[REST] |
|
Input |
url :呼び出す URL action :使用する HTTP メソッド headers :渡される HTTP ヘッダー payload :要求ペイロード fingerprint :https の URL と照合するフィンガープリント allowAllCerts :true に設定されている場合、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 :HTTP 応答コード responseHeaders :HTTP 応答ヘッダー responseBody :受信する応答の文字列形式 responseJson :コンテンツ タイプが [application/json] の場合のトラバーサブル応答 |
${MY_STAGE.MY_TASK.output.responseCode} ${MY_STAGE.MY_TASK.output.responseHeaders} ${MY_STAGE.MY_TASK.output.responseHeaders.header1} # 応答ヘッダー header1 を参照 ${MY_STAGE.MY_TASK.output.responseBody} ${MY_STAGE.MY_TASK.output.responseJson} # JSON としての応答を参照 ${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # 応答に含まれる a.b.c JSON パスの後にネストされたオブジェクトを参照 |
[ポーリング] |
|
Input |
url :呼び出す URL headers :渡される HTTP ヘッダー exitCriteria :タスクが成功または失敗するために満たす必要がある基準。キーと値のペア。「成功」の場合の式、「失敗」の場合の式 pollCount :実行する反復回数。 Code Stream 管理者は、ポーリング数を最大 10,000 に設定できます。 pollIntervalSeconds :各反復処理の間に待機する秒数。ポーリング間隔は 60 秒以上にする必要があります。 ignoreFailure :true に設定すると、途中の応答での失敗を無視 fingerprint :https の URL と照合するフィンガープリント allowAllCerts :true に設定されている場合、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 :HTTP 応答コード responseBody :受信する応答の文字列形式 responseJson :コンテンツ タイプが [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 |
表 9.
リモートおよびユーザー定義のスクリプトの実行
タスク |
Scope |
Key |
タスクでの SCOPE と KEY の使用方法 |
[PowerShell] PowerShell タスクを実行するには、次の手順を実行する必要があります。
- リモート Windows ホストに対するセッションをアクティブにします。
- base64 PowerShell コマンドを入力する場合は、最初にコマンド全体の長さを計算します。詳細については、Code Stream で使用可能なタスクのタイプを参照してください。
|
|
入力 |
host :マシンの IP アドレスまたはホスト名 username :接続に使用するユーザー名 password :接続に使用するパスワード useTLS :https 接続の試行 trustCert :true に設定すると、自己署名証明書を信頼 script :実行するスクリプト workingDirectory :スクリプトを実行する前にディレクトリを切り替える先のパス environmentVariables :設定する環境変数のキーと値のペア arguments :スクリプトに渡す引数 |
${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} |
|
出力 |
:ファイル $SCRIPT_RESPONSE_FILE response の内容 responseFilePath :$SCRIPT_RESPONSE_FILE の値 exitCode :プロセス終了コード logFilePath :stdout を含むファイルへのパス errorFilePath :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 :マシンの IP アドレスまたはホスト名 username :接続に使用するユーザー名 password :接続に使用するパスワード(オプションで privateKey を使用可能) privateKey :接続に使用する PrivateKey passphrase :privateKey のロックを解除するためのオプションのパスフレーズ script :実行するスクリプト workingDirectory :スクリプトを実行する前にディレクトリを切り替える先のパス environmentVariables :設定する環境変数のキーと値のペア |
${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 |
:ファイル $SCRIPT_RESPONSE_FILE response の内容 responseFilePath :$SCRIPT_RESPONSE_FILE の値 exitCode :プロセス終了コード logFilePath :stdout を含むファイルへのパス errorFilePath :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} |
タスク間で変数のバインドを使用する方法
次の例は、パイプライン タスクで変数のバインドを使用する方法を示しています。
表 10.
構文形式のサンプル
例 |
構文 |
パイプライン通知およびパイプライン出力プロパティにタスク出力値を使用する |
${<Stage Key>.<Task Key>.output.<Task output key>} |
現在のタスクの入力として前のタスク出力値を参照する |
${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>} |
詳細
タスクのバインド変数の詳細については、次を参照してください。