okaryo.log

GitHubActionsで複数行文字列の環境変数をGITHUB_ENVに書き込む | okaryo.log

GitHubActionsで複数行文字列の環境変数をGITHUB_ENVに書き込む

    #GitHubActions#GitHub

はじめに

GitHubActionsでワークフローを組んでいる際に、以下のようにしてJSONの中身を保存していたシークレットを環境変数に設定したい場面があった。

echo 'HOGE_JSON=${{ secrets.FUGA_JSON }}' >> $GITHUB_ENV

そうすると以下のようなエラーが出た。

Error: Invalid format '  ***'

調べてみると、複数行の文字列を環境変数$GITHUB_ENVに書き込む際は専用の構文を使う必要があるらしいので残しておく。

方法

複数行の文字列を環境変数$GITHUB_ENVに書き込む際は、以下の構文で区切り文字を使えるようだ。

{name}<<{delimiter}
{value}
{delimiter}

これを使うと、上で書いた処理は以下のように書き直すことができる。区切り文字としてEOFを使用している。

{
  echo 'HOGE_JSON<<EOF'
  echo "${{ secrets.FUGA_JSON }}"
  echo 'EOF'
} >> $GITHUB_ENV

ちなみに{}はシェルコマンドをまとめて行うための記法。上の処理は以下のようにも書ける。

echo 'HOGE_JSON<<EOF' >> $GITHUB_ENV
echo "${{ secrets.FUGA_JSON }}" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

おわり

これで複数行の文字列を$GITHUB_ENVに書き込むことができた。

GitHubActionsはドキュメントがしっかりしているので本当にありがたい。


関連記事
最新記事
プロモーション

This site uses Google Analytics.