ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

GitHub Actionsのワークフローコマンド

ワークフロー内あるいはアクションのコード内でシェルコマンドを実行する際には、ワークフローコマンドを利用できます。

GitHub ActionsはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Oneで利用できます。 GitHub Actionsは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。

ここには以下の内容があります:

Note: GitHub Actions was available for GitHub Enterprise Server 2.22 as a limited beta. The beta has ended. GitHub Actions is now generally available in GitHub Enterprise Server 3.0 or later. For more information, see the GitHub Enterprise Server 3.0 release notes.


Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.

ワークフローコマンドについて

アクションは、 環境変数を設定する、他のアクションに利用される値を出力する、デバッグメッセージを出力ログに追加するなどのタスクを行うため、ランナーマシンとやりとりできます。

ワークフローコマンドは、特定のフォーマットで echo コマンドを使います。

echo "::workflow-command parameter1={data},parameter2={data}::{command value}"

ノート: ワークフローコマンドおよびパラメータ名では、大文字と小文字は区別されません。

警告: コマンドプロンプトを使っているなら、ワークフローコマンドを使う際にダブルクォート文字(")は省いてください。

ワークフローコマンドを使ったツールキット関数へのアクセス

actions/toolkitには、ワークフローコマンドとして実行できる多くの関数があります。 ::構文を使って、YAMLファイル内でワークフローコマンドを実行してください。それらのコマンドはstdoutを通じてランナーに送信されます。 たとえば、コードを使用して出力を設定する代わりに、以下のようにします。

core.setOutput('SELECTED_COLOR', 'green');

ワークフローで set-output コマンドを使用して、同じ値を設定できます。

      - name: Set selected color
        run: echo '::set-output name=SELECTED_COLOR::green'
        id: random-color-generator
      - name: Get color
        run: echo "The selected color is ${{ steps.random-color-generator.outputs.SELECTED_COLOR }}"

以下の表は、ワークフロー内で使えるツールキット関数を示しています。

ツールキット関数等価なワークフローのコマンド
core.addPath
add-path
core.debugdebug
core.errorerror
core.endGroupendgroup
core.exportVariable
set-env
core.getInput環境変数のINPUT_{NAME}を使ってアクセス可能
core.getState環境変数のSTATE_{NAME}を使ってアクセス可能
core.isDebug環境変数のRUNNER_DEBUGを使ってアクセス可能
core.saveStatesave-state
core.setFailed::error及びexit 1のショートカットとして使われる
core.setOutputset-output
core.setSecretadd-mask
core.startGroupgroup
core.warningwarning file

環境変数の設定

::set-env name={name}::{value}

ジョブの中で次に実行される任意のアクションの環境変数を作成または更新します。 環境変数を作成または更新するアクションは、新しい値にアクセスできませんが、ジョブの中でそれ以降に続くすべてのアクションは、その新しい値にアクセスできます。 環境変数では、大文字と小文字が区別され、句読点を含めることができます。

サンプル

echo "::set-env name=action_state::yellow"

出力パラメータの設定

::set-output name={name}::{value}

アクションの出力パラメータを設定します。

あるいは、出力パラメータをアクションのメタデータファイル中で宣言することもできます。 詳しい情報については、「GitHub Actions のメタデータ構文」を参照してください。

サンプル

echo "::set-output name=action_fruit::strawberry"

システムパスの追加

::add-path::{path}

現在のジョブ内にある、後に続くすべてのアクションにおいて、システム PATH 変数の前に、ディレクトリを付加します。 現在実行中のアクションは、新しいパス変数にアクセスできません。

サンプル

echo "::add-path::/path/to/dir"

デバッグメッセージの設定

::debug::{message}

デバッグメッセージをログに出力します。 ログでこのコマンドにより設定されたデバッグメッセージを表示するには、ACTIONS_STEP_DEBUG という名前のシークレットを作成し、値を true に設定する必要があります。 詳しい情報については、「デバッグログの有効化」を参照してください。

サンプル

echo "::debug::Set the Octocat variable"

警告メッセージの設定

::warning file={name},line={line},col={col}::{message}

警告メッセージを作成し、ログにそのメッセージを出力します。 警告が発生する場所を、ファイル名 (file)、行番号 (line)、および列 (col) 番号で指定することもできます。

サンプル

echo "::warning file=app.js,line=1,col=5::Missing semicolon"

エラーメッセージの設定

::error file={name},line={line},col={col}::{message}

エラーメッセージを作成し、ログにそのメッセージを出力します。 警告が発生する場所を、ファイル名 (file)、行番号 (line)、および列 (col) 番号で指定することもできます。

サンプル

echo "::error file=app.js,line=10,col=15::Something went wrong"

ログの行のグループ化

::group::{title}
::endgroup::

展開可能なグループをログ中に作成します。 グループを作成するには、groupコマンドを使ってtitleを指定してください。 groupendgroupコマンド間でログに出力したすべての内容は、ログ中の展開可能なエントリ内にネストされます。

サンプル

echo "::group::My title"
echo "Inside group"
echo "::endgroup::"

ワークフローの実行ログ中の折りたたみ可能なグループ

ログ中での値のマスク

::add-mask::{value}

値をマスクすることにより、文字列または値がログに出力されることを防ぎます。 空白で分離された、マスクされた各語は "*" という文字で置き換えられます。 マスクの value には、環境変数または文字列を持ちいることができます。

文字列をマスクするサンプル

ログに "Mona The Octocat" を出力すると、"***" が表示されます。

echo "::add-mask::Mona The Octocat"

環境変数をマスクするサンプル

変数 MY_NAME または値 "Mona The Octocat" をログに出力すると。"Mona The Octocat" の代わりに "***" が表示されます。

MY_NAME="Mona The Octocat"
echo "::add-mask::$MY_NAME"

ワークフローコマンドの停止と開始

::stop-commands::{endtoken}

ワークフローコマンドの処理を停止します。 この特殊コマンドを使うと、意図せずワークフローコマンドを実行することなくいかなるログも取れます。 たとえば、コメントがあるスクリプト全体を出力するためにログ取得を停止できます。

ワークフローコマンドの停止の例

echo "::stop-commands::pause-logging"

ワークフローコマンドを開始するには、ワークフローコマンドを停止するのに使ったトークンを渡します。

::{endtoken}::

ワークフローコマンドの開始の例

echo "::pause-logging::"

pre及びpostアクションへの値の送信

save-stateコマンドを使って、ワークフローのpre:あるいはpost:アクションと共有するための環境変数を作成できます。 たとえば、pre:アクションでファイルを作成し、そのファイルの場所をmain:アクションに渡し、post:アクションを使ってそのファイルを削除できます。 あるいは、ファイルをmain:アクションで作成し、そのファイルの場所をpost:アクションに渡し、post:アクションを使ってそのファイルを削除することもできます。

複数のpre:あるいはpost:アクションがある場合、保存された値にアクセスできるのはsave-stateが使われたアクションの中でのみです。 post:アクションに関する詳しい情報については「GitHub Actionsのためのメタデータ構文」を参照してください。

save-stateコマンドはアクション内でしか実行できず、YAMLファイルでは利用できません。 保存された値は、STATE_プレフィックス付きで環境変数として保存されます。

以下の例はJavaScriptを使ってsave-stateコマンドを実行します。 結果の環境変数はSTATE_processIDという名前になり、12345という値を持ちます。

console.log('::save-state name=processID::12345')

そして、STATE_processID変数はmainアクションの下で実行されるクリーンアップスクリプトからのみ利用できます。 以下の例はmainを実行し、JavaScriptを使って環境変数STATE_processIDに割り当てられた値を表示します。

console.log("The running PID from the main action is: " +  process.env.STATE_processID);

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.