Embeddedアクション
embeddedアクションはジョブファイルを1つのステップとして実行します。共通のセットアップやチェックを別ファイルに切り出し、複数のワークフローから再利用できます。
読み込むファイルはワークフローではなくジョブです。name、steps、必要ならdefaultsを持ち、jobsキーはありません。
基本的な構文
auth.yml:
name: Authentication
steps:
- name: Get token
id: get_token
uses: shell
with:
cmd: echo "0123456789"
test: res.code == 0
outputs:
mytoken: replace(res.stdout, '\n', '')workflow.yml:
jobs:
- name: Main
steps:
- name: Authenticate
id: auth
uses: embedded
with:
path: "./auth.yml"
vars:
environment: "{{vars.environment}}"
test: res.code == 0
outputs:
token: res.outputs.mytoken
- name: Call the API
uses: http
with:
method: GET
url: "{{vars.api_url}}/me"
headers:
authorization: "Bearer {{outputs.auth.token}}"
test: res.code == 200パラメータ
埋め込みのステップでは、実行するジョブファイルと、そこに渡す変数を指定します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
path | String | 必須 | - | ジョブファイルのパス。ワークフローファイルからではなく、カレントディレクトリからの相対パスとして解決されます |
vars | Object | 任意 | {} | 埋め込みジョブに渡す変数。向こう側ではvars.<name>で参照します |
ジョブファイルの中でuses: ./greetのようにローカルの外部アクションを使うと、ワークフローの中でワークフローファイルから探すのと同じく、そのジョブファイルからの相対パスで探します。
レスポンスオブジェクト
埋め込みジョブの終了後、resにその結果と出力が入ります。
| プロパティ | 型 | 説明 |
|---|---|---|
res.code | Integer | 埋め込みジョブのすべてのステップが成功したとき0 |
res.outputs | Object | 埋め込みジョブのステップが公開したoutputs。出力名がキーになります |
res.report | String | 埋め込みジョブのレポート。親のレポートにもネストして表示されます |
res.error | String | 失敗時のエラーメッセージ |
res.dump | Boolean | 常にfalse |
status | Integer | res.codeと同じ値 |
rt | Object | 埋め込みジョブの実行時間 |
res.outputsのキーは出力名なので、mytokenとして公開した値はres.outputs.mytokenで読みます。同じ値は公開したステップのidの下にもres.outputs.get_token.mytokenとして入っています。2つのステップが同じ名前を公開した場合、res.outputs.<name>には先に公開したステップの値が入り、ステップのidの下の形にはそれぞれの値が入ります。
関連項目
更新日時