GitHub ActionsのワークフローのステータスのバッジをREADMEに表示する

2019年9月現在ベータ公開中のGitHub Actionsですが、そういえばREADME.mdの上の方に置いておくアレ無いの?と思い気になったので調べてみました。

あるみたいです

調べてみたところ普通に公式ヘルプに書いてありました。
GitHub公式でバッジ対応しているようです。

Adding a workflow status badge to your repository

こんな感じ

actions/setup-nodeのワークフローのバッジの例です。
ワークフロー名とビルドステータスが表示されます。

使い方

ヘルプの方にも書いてありますが記述方法が2つあってワークフローに名前を設定してるかどうかで設定方法が変わります。

ワークフロー名でバッジを作成する

OWNERはレポジトリを管理しているユーザ名かOrganization名、REPOSITORYはレポジトリ名、WORKFLOW_NAMEはワークフローの名前を指定します。
WORKFLOW_NAMEに半角スペースが含まれる場合はエスケープしなければダメで%20に置き換える必要があります。

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg

上記のactions/setup-nodeの例だとこんな感じです。

https://github.com/actions/setup-node/workflows/Main%20workflow/badge.svg

URLにリクエストするとバッジの画像が帰ってくるので通常のバッジと同様にREADME.mdにMarkdown形式などで埋め込むことができます。

ワークフローのファイルパスでバッジを作成する

ワークフローのYAMLのnameにワークフロー名を指定している場合は上記の方法でURLを作ればよいのですがnameのフィールドは任意のフィールドなので設定されていない場合もあります。
その場合はワークフロー名の代わりにYAMLのファイルパスで指定します。
どうやらnameが未指定の状態だとファイルパスがワークフロー名の代わりになるらしくActionsタブのワークフロー一覧にもファイルパスで表示されます。

https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_FILE_PATH>/badge.svg

nameが指定されている場合はこちらの方法ではNotFoundが帰ってくるのでワークフロー名でURLを作成しましょう。

参考リンク