GitHub Actionsのメタデータ構文
リポジトリでタスクを実行するアクションを作成できます。 アクションには、YAML構文を使うメタデータファイルが必要です。
GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. GitHub Actions is unavailable for per-repository plans, which are legacy billing plans. For more information, see "GitHub's products."
ここには以下の内容があります:
GitHub ActionsのYAML構文について
Docker及びJavaScriptアクションにはメタデータファイルが必要です。 メタデータのファイル名はaction.yml
でなければなりません。 メタデータファイル中のデータは、アクションの入力、出力、メインエントリポイントを定義します。
アクションのメタデータファイルはYAML構文を使います。 YAMLについて詳しくない場合は、「Learn YAML in five minutes (5分で学ぶYAML)」をお読みください。
name
必須アクションの名前。 GitHubはname
をActionsタブに表示して、それぞれのジョブのアクションを見て区別しやすくします。
author
オプション アクションの作者の名前。
説明
必須 アクションの短い説明。
inputs
オプション inputsパラメーターを使うと、アクションが実行時に使うデータを指定できます。 GitHubは、inputsパラメータを環境変数として保存します。 大文字が使われているInputsのidは、実行時に小文字に変換されます。 inputsのidには小文字を使うことをおすすめします。
サンプル
この例では、numOctocatsとoctocatEyeColorという 2つの入力を設定しています。 入力のnumOctocatsは必須ではなく、デフォルトの値は'1'になっています。 入力のoctocatEyeColorは必須であり、デフォルト値を持ちません。 このアクションを使うワークフローのファイルは、with
キーワードを使ってoctocatEyeColorの入力値を設定しなければなりません。 with
構文に関する詳しい情報については「GitHub Actionsのためのワークフローの構文」を参照してください。
inputs:
numOctocats:
description: 'Number of Octocats'
required: false
default: '1'
octocatEyeColor:
description: 'Eye color of the Octocats'
required: true
ワークフローファイル内で、あるいはデフォルトの入力値を使ってアクションに入力を指定すると、GitHubはその入力に対応してINPUT_<VARIABLE_NAME>
という名前の環境変数を生成します。 生成される環境変数では、入力の名前を大文字にして、空白を_
に変換します。
たとえば、ワークフローがnumOctocats及びoctocatEyeColorという入力を定義すると、アクションのコードはこれらの入力の値をINPUT_NUMOCTOCATS
及びINPUT_OCTOCATEYECOLOR
という環境変数で読み取れます。
inputs.<input_id>
必須 文字列型
の識別子で、入力と結びつけられます。 <input_id>
の値は、入力のメタデータのマップです。 <input_id>
は、inputs
オブジェクト内でユニークな識別子でなければなりません。 <input_id>
は、文字あるいは_
で始める必要があり、英数字、-
、_
しか使用できません。
inputs.<input_id>.description
必須 入力パラメーターの文字列
での説明。
inputs.<input_id>.required
必須 この入力パラメーターがアクションに必須かどうかを示す論理値
。 パラメーターが必須の場合はtrue
に設定してください。
inputs.<input_id>.default
オプション デフォルト値を示す文字列
。 デフォルト値は、入力パラメーターがワークフローファイルで指定されたなかった場合に使われます。
outputs
オプション outputsパラメーターを使うと、これらのoutputsを定義しているアクションが実行された後に、ワークフロー内のそれ以降のアクションが利用できるデータを指定できます。 たとえば、2つの入力を加算(x + y = z)するアクションがあれば、そのアクションは他のアクションが入力として利用できる合計値(z)を出力できます。
大文字が使われているoutputsのidは、実行時に小文字に変換されます。 outputsのidには小文字を使うことをおすすめします。
outputs.<output_id>
必須 文字列型
の識別子で、出力と結びつけられます。 <output_id>
の値は、出力のメタデータのマップです。 <output_id>
は、outputs
オブジェクト内でユニークな識別子でなければなりません。 <output_id>
は、文字あるいは_
で始める必要があり、英数字、-
、_
しか使用できません。
outputs.<output_id>.description
必須 出力パラメーターの文字列
での説明。
runs
必須 アクションが実行されたときに走るコマンド。
using
必須 main
で指定されたコードを実行するのに使われるアプリケーション。
Node.jsを使用する例
using: 'node12'
main: 'main.js'
リポジトリ内のDockerfileを利用する例
using: 'docker'
image: 'Dockerfile'
using: 'docker'
image: 'docker://debian:stetch-slim'
env
オプション 仮想環境に設定する環境変数のキー/値のマップを指定します。
main
JavaScriptアクションでは必須 アクションコードを含むコードファイル。 using
構文を使って指定されたアプリケーションがこのファイルを実行します。
image
コンテナアクションでは必須 コンテナがアクションを実行する際に使用するDockerイメージ。 この値には、Dockerのベースイメージ名、自分のリポジトリ、パブリックなDocker Hubあるいはリポジトリ内のローカルのDockerfile
を指定できます。 自分のリポジトリにローカルなDockerfile
を参照するには、リポジトリにルートに対する相対的なパスを使ってください。 using
構文を使って指定されたアプリケーションがこのファイルを実行します。
自分のリポジトリ内のDockerfileを利用する例
image: 'Dockerfile'
パブリックなDockerレジストリコンテナを利用する例
image: 'docker://debian:stretch-slim'
GitHub上のパブリックなDockerコンテナを利用する例
image: 'actions/container-template@master'
entrypoint
コンテナアクションのオプション Dockerfile
中のDockerのENTRYPOINT
をオーバーライドします。あるいは、もしそれが指定されていなかった場合に設定します。 アクションがruns
キーワードを使わない場合、このentrypoint
内のコマンドが実行されます。 DockerのENTRYPOINT
命令にはshell形式とexec形式があります。 DockerのENTRYPOINT
のドキュメンテーションでは、ENTRYPOINT
の命令としてexec形式を使うことをすすめています。
args
コンテナアクションのオプション Dockerコンテナへの入力を定義する文字列の配列
。 入力には、ハードコードされた文字列を含めることができます。 GitHubは、コンテナの起動時にコンテナのENTRYPOINT
にargs
を渡します。
args
は、Dockerfile
中のCMD
命令の場所で使われます。 Dockerfile
中でCMD
を使うなら、以下の優先順位順のガイドラインを利用してください。
- 必須の引数をアクションのREADME中でドキュメント化し、
CMD
命令から除外してください。 args
を指定せずにアクションを利用できるよう、デフォルトを使ってください。- アクションが
--help
フラグやそれに類するものを備えているなら、アクションを自己ドキュメント化するためのデフォルトとして利用してください。
例
# array format
args: ['${{ inputs.greeting }}', 'foo', 'bar']
# and because it's just YAML, this works:
args:
- ${{ inputs.greeting }}
- 'foo'
- 'bar'
branding
GitHub Marketplaceでアクションをパーソナライズして見分けられるようにするために、カラーとFeatherアイコンを使ってバッジを作ることができます。 詳しい情報についてはGitHub 開発者ドキュメンテーション中の「GitHub Marketplace内でのGitHub Actions」を参照してください。
サンプル
branding:
icon: 'award'
color: 'green'
color
バッジの背景カラー。 white
、yellow
、blue
、green
、orange
、red
、purple
、gray-dark
のいずれか。
icon
利用するFeatherアイコンの名前。
activity | airplay | alert-circle | alert-octagon |
alert-triangle | align-center | align-justify | align-left |
align-right | anchor | aperture | archive |
arrow-down-circle | arrow-down-left | arrow-down-right | arrow-down |
arrow-left-circle | arrow-left | arrow-right-circle | arrow-right |
arrow-up-circle | arrow-up-left | arrow-up-right | arrow-up |
at-sign | award | bar-chart-2 | bar-chart |
battery-charging | battery | battery | bell |
bluetooth | bold | book-open | book |
bookmark | box | briefcase | calendar |
camera-off | camera | cast | check-circle |
check-square | check | chevron-down | chevron-left |
chevron-right | chevron-up | chevrons-down | chevrons-left |
chevrons-right | chevrons-up | circle | clipboard |
clock | cloud-drizzle | cloud-lightning | cloud-off |
cloud-rain | cloud-snow | cloud | code |
command | compass | copy | corner-down-left |
corner-down-right | corner-left-down | corner-left-down | corner-right-down |
corner-right-up | corner-up-left | corner-up-right | cpu |
credit-card | crop | crosshair | database |
delete | disc | dollar-sign | download-cloud |
download | droplet | edit-2 | edit-3 |
edit | external-link | eye-off | eye |
fast-forward | feather | file-minus | |
file-plus | file-text | ファイル | film |
filter | flag | folder-minus | folder-plus |
folder | gift | git-branch | git-commit |
git-merge | git-pull-request | globe | grid |
hard-drive | hash | headphones | heart |
help-circle | home | image | inbox |
info | italic | layers | layout |
life-buoy | link-2 | link | list |
loader | lock | log-in | log-out |
map-pin | map | maximize-2 | |
maximize | menu | message-circle | message-square |
mic-off | mic | minimize-2 | minimize |
minus-circle | minus-square | minus | monitor |
moon | more-horizontal | more-vertical | move |
music | navigation-2 | navigation | octagon |
package | paperclip | pause-circle | pause |
percent | phone-call | phone-forwarded | phone-incoming |
phone-missed | phone-off | phone-outgoing | phone |
pie-chart | play-circle | play | plus-circle |
plus-square | plus | power | |
printer | radio | refresh-ccw | refresh-cw |
repeat | rewind | rotate-ccw | rotate-cw |
rss | save | scissors | search |
send | server | settings | share-2 |
share | shield-off | shield | shopping-bag |
shopping-cart | shuffle | sidebar | skip-back |
skip-forward | slash | sliders | smartphone |
speaker | square | Star | stop-circle |
sun | sunrise | sunset | tablet |
tag | target | terminal | thermometer |
thumbs-down | thumbs-up | toggle-left | toggle-right |
trash-2 | trash | trending-down | trending-up |
triangle | truck | tv | type |
umbrella | underline | unlock | upload-cloud |
upload | user-check | user-minus | user-plus |
user-x | user | ユーザ | video-off |
video | voicemail | volume-1 | volume-2 |
volume-x | volume | Watch | wifi-off |
wifi | wind | x-circle | x-square |
x | zap-off | zap | zoom-in |
zoom-out |