4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tips: GitHub Actions で Array を複数行の文字列に変換する方法

Posted at

忙しい人向け

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') }}

実行結果はこちら

image.png

candy\ncookie\nchocolate のようになってしまいました。
改行文字 (LF) ではなく、バックスラッシュ (\) と n が挟まれてしまい、1行の文字列になっています。

成功するパターン

ちょっとしたテクニックが必要です。
fromJSON('"\n"') のように書くと、ちゃんと改行文字を挟んでくれます。

      - run: echo "$OUTPUT2"
        env:
          OUTPUT2: ${{ join(fromJSON(env.ARRAY), fromJSON('"\n"')) }}

実行結果はこちら

image.png

fromJSON は文字列をパースしてJSONデータ型に変換できます。
文字列も JSON として有効なので、"\n" を文字列化した '"\n"'fromJSON でパースすると改行文字になります。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?