[GitHub]Actionsで非推奨となるset-envとadd-pathへの対応について確認してみた #GitHub

GitHub ActionsのWorkflowログをたどっていたところ、警告表記が出ていることにきがつきました。今月頭にブログにて告知されていたようです。内容について確認とともに対処方法をまとめました。
2020.10.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

Workflowのログを見ていたところ、以下の警告に気が付きました。

The set-env command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands

普段はWorkflowの実行結果がグリーンであれば問題なしとしていたための見落としでした。警告の詳細と、具体的な対処についてまとめてみます。

set-envとadd-pathの非推奨化

詳細は以下の記事にあります。

影響するのは変数の追加定義方法となりますが、対処方法はケースに応じて異なります。

  • セルフホストでの定義
  • Actionを作成する際に用いるToolKit
  • Workflowのステップ間共有

以下、具体的にはどうなるのかを並べていきます。

セルフホストでの定義

ホストランナースクリプトの更新が必要になります。v2.273.1以降であれば問題ありません。

EC2で利用する場合には Linux x64 用の以下の手順で行いましょう。

#Create a folder
mkdir actions-runner && cd actions-runner
#Download the latest runner package
curl -O -L https://github.com/actions/runner/releases/download/v2.273.1/actions-runner-linux-x64-2.273.1.tar.gz
#Extract the installer
tar xzf ./actions-runner-linux-x64-2.273.1.tar.gz

Actionを作成する際に用いるToolkit

@actions/corev1.2.6以上にする必要があります。addPathexportVariableがアップデートされます。

npm install @actions/core@1.2.6

Workflowのステップ間共有

おそらく一番影響範囲が大きいものとなります。

Workflow動作中、ランナーが作成する一時的なファイル群に保存される形になります。UTF-8エンコーディングでの出力が必要です。複数行のコマンドは一つのファイルに複数行で収まる形となります。ですが、利用する上で特殊なファイル操作は発生しません。

set-env

これまでは以下のように記述して利用しました。

      - name: Set selected color
        run: echo '::set-env name=SELECTED_COLOR::green'
      - name: Get color
        run: echo 'The selected color is' $SELECTED_COLOR

アップデート後は以下のようになります。

echo "{name}={value}" >> $GITHUB_ENV

      - name: Set selected color
        run: echo "selected_color=green" >> $GITHUB_ENV
      - name: Get color
        run: echo 'The selected color is' $selected_color

add-path

これまでは以下のように記述して利用しました。

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

アップデート後は以下のようになります。

echo "{path}" >> $GITHUB_PATH

      - name: add path
        run: echo "/path/to/dir" >> $GITHUB_PATH

OSでの設定と記述を合わせています。いずれも記述自体はとても分かりやすくなったのではないかと思います。

あとがき

利用状況についてはモニタリングしていくとありますが、将来的には差し替わるとのことです。

新規で作成する場合には新しい方法で行っていくべきですが、旧来の記述となっている箇所の確認はActionsの実行ログで警告が発生しているかどうかで判断するのが確実でしょう。

参考URL