CI/CDツール

GitHub Actions式の評価実行前に戻り値を確認

式を一つ入力し、模擬コンテキストを編集して戻り値を確認できます。

GitHub Actions式の評価

式

模擬コンテキストJSON

結果

戻り値
結果なし

型: 結果なし

if条件: 結果なし

式と模擬コンテキストはブラウザー内で処理し、GitHubやサーバーへ送信しません。

オプション

この模擬値を使うのは状態関数だけです。

結果が古くなりました。

ブランチ条件を書いたのにジョブがスキップされる。そんなときはGitHub Actions式の評価で、対象のrefやイベント名を模擬コンテキストに入れ、if条件だけを切り出して調べられます。

GitHub Actions条件式とGitHub Actions ifテストを一回の画面で扱えます。ただし実際のrunnerの値は自動取得しません。入力したJSONの値に対する評価だと分かる形で結果を表示します。

GitHub Actions式の評価を使う理由

式だけでなく、どの値を代入したかと戻り値の型も確認できます。

refを変えると答えも変わる

同じ条件でもmainとfeatureのrefでは結果が変わります。GitHub Actions式の評価ではgithub.refを書き換えて確認でき、試すたびにpushする必要はありません。

編集可能なコンテキストから異なる真偽の結果へつながる図。

戻り値と真偽を分ける

論理ORはBoolean以外の値を返し、if条件はその値を真と見なすことがあります。GitHub Actions式の評価では両者を別々に表示します。

論理式から青い元の値と緑の真を示すカードへ分岐する図。

if条件を読み違えないための三つの確認

01

式の範囲を確かめる

裸の式、完全な`${{ … }}`、または一行の`if:`を入力できます。囲みの外に比較文字列が残る場合は、部分だけを評価せずエラーにします。

  • 誤った引用符を使った例も選べるため、診断表示を確認できます。
02

模擬値を合わせる

JSONのgithub、env、inputs、matrixを実際に近い値へ変更します。状態の選択はsuccess()などの関数だけに使い、ジョブ全体の実行状態は再現しません。

  • env.DEPLOYの初期値は文字列です。必要ならfromJSONで変換します。
03

戻り値と真偽を分けて見る

`&&`や`||`はBoolean以外の値を返すことがあります。入力変更後は自動更新を待つか、手動に切り替えてCtrl/Cmd+Enterで評価します。

  • 古い結果のコピーとダウンロードは無効になります。

関数とコンテキストの挙動を確かめる

公式パーサーによる評価

contains、startsWith、endsWith、format、join、toJSON、fromJSON、case、演算子とオブジェクトフィルターをGitHubの規則で扱います。

編集できるGitHub Actionsコンテキスト

github.refやevent_nameを設定できます。存在しないトップレベル名はエラーになり、runnerにしかない値を勝手に補いません。

値・型・条件真偽を表示

戻り値が文字列でもif条件では真になる場合があります。元の値と型を見れば、単なるtrue/false表示より原因を追いやすくなります。

この画面で再現できる範囲

ワークフロー全体は判定しない
on:のイベントフィルター、matrixの展開、ジョブ依存関係は処理しません。式が真でもジョブの実行は保証されません。
状態関数は模擬値を読む
success()、failure()、cancelled()、always()は選択した状態で試します。前のstepや依存jobの本当の状態は取得できません。
hashFiles()は計算しない
GITHUB_WORKSPACEの実ファイルが必要なので、偽のハッシュ値を返さず評価不可と知らせます。
機密情報を取得しない
secretsやGitHub APIの値は読み込みません。必要な模擬フィールドだけをJSONに入れてください。

GitHub Actions式の評価についてよくある質問

GitHub Actionsの式でtrueと'true'は同じですか?

Booleanと文字列は型が違います。比較時の数値変換で直感と異なる結果になり得るので、ここで戻り値と型を確認してください。

if条件では`${{ }}`を省略できますか?

通常のif条件では省略できます。ほかの位置では囲みが必要な場合があり、この画面は裸の式と完全な囲みの両方を受け付けます。

ジョブがスキップされた理由はどこで確認できますか?

GitHubのジョブ条件ログを確認してください。このツールは式を評価しますが、暗黙のsuccess()や依存ジョブ、イベントフィルター全体は再現しません。

envの値とinputsの真偽値はどう比較しますか?

envは文字列として届くことがあります。必要に応じてfromJSON(env.NAME)で型を変え、模擬コンテキストで比較結果を試してください。

containsとstartsWithは大文字小文字を区別しますか?

GitHubの関数はこの比較で大文字小文字を区別しません。GitHub Actions式の評価でも同じ公式エンジンの結果を表示します。

このツールが誤判定するworkflowを見つけましたか?

GitHub Actions式の評価を試す

実際の条件と機密を除いたJSONを用意してGitHub Actions式の評価に戻り、コミット前に戻り値を確かめましょう。

解析はすべてブラウザ内でローカルに行われます。