忙しい人向け
GitHub Actions の式で以下のように fromJSON('"\n"')
を join すると、 改行文字 \n
で区切られた複数行の文字列に変換できます。
join(array, fromJSON('"\n"'))
解説
以下のように定義した Array を例として説明します。
env:
ARRAY: '["candy", "cookie", "chocolate"]'
(env には直接 Array を渡せないので、string にしてあります。以降、fromJSON
で Array に変換してから使用します。)
失敗するパターン
まずは、普通に join
で '\n'
で連結してみます。
- run: echo "$OUTPUT1"
env:
OUTPUT1: ${{ join(fromJSON(env.ARRAY), '\n') }}
実行結果はこちら
candy\ncookie\nchocolate
のようになってしまいました。
改行文字 (LF
) ではなく、バックスラッシュ (\
) と n
が挟まれてしまい、1行の文字列になっています。
成功するパターン
ちょっとしたテクニックが必要です。
fromJSON('"\n"')
のように書くと、ちゃんと改行文字を挟んでくれます。
- run: echo "$OUTPUT2"
env:
OUTPUT2: ${{ join(fromJSON(env.ARRAY), fromJSON('"\n"')) }}
実行結果はこちら
fromJSON
は文字列をパースしてJSONデータ型に変換できます。
文字列も JSON として有効なので、"\n"
を文字列化した '"\n"'
を fromJSON
でパースすると改行文字になります。