GitHub Actions의 set-output에 복수행의 표준 출력을 대입하는 경우는 개행 코드를 이스케이프 해 줄 필요가 있다
4361 단어 GitHubActions
결론
set-output에 복수행의 표준 출력을 대입하는 경우는 개행 코드를 이스케이프 해 두는 것
hoge="${hoge//$'\n'/\\n}"
echo "::set-output name=hoge::$hoge"
set-output이란?
GitHub Actions에서는 set-output 명령을 이용하여 출력 파라미터에 값을 대입할 수 있습니다.echo "::set-output name=NAME::VALUE"
에서 NAME
에 VALUE
를 대입할 수 있습니다.
이용할 때는 ${{ steps.ID.outputs.NAME }}
로 이용합니다. id 값을 지정해야 하므로 대입 시 반드시 id 를 설정하십시오.
예를 들면 다음과 같이 사용합니다.
steps:
- id: test_id
name: test_name
run: echo "::set-output name=test::hoge"
- run: echo "${{ steps.test_id.outputs.test }}"
이렇게 하면 ${{ steps.test_id.outputs.test }}
에는 hoge
가 대입됩니다.
어떤 시간에 사용합니까?
나중 단계에 값을 전달하고 싶을 때 등에 사용합니다. 예를 들어 A 단계에서 명령 실행을 수행하고 B 단계에서 A 단계에서 실행한 명령의 표준 출력을 slack에 통지할 때와 같이 사용하고 싶습니다.
복수행의 표준 출력이라면 1행째 밖에 대입되지 않는다
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
위의 매니페스트는 OS 사용자 목록을 출력합니다. 다중 사용자가 있기 때문에 출력 매개 변수에는 여러 줄의 표준 출력이 할당되어야하지만 실제로는 첫 번째 줄 만 할당됩니다.
줄 바꿈 코드 이스케이프
출력 파라미터에 대입하기 전에 개행 코드를 이스케이프 하는 것으로 복수행을 출력 파라미터에 대입할 수가 있습니다.
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
# エスケープ処理
user_list="${user_list//$'\n'/\\n}"
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
이쪽은 GitHub의 서포트 케이스에 오르고 있습니다만, 이스케이프 처리를 넣어라가 공식 회답이 되고 있습니다. . 일일이 이스케이프 처리를 넣는 것은 번거롭고, 사용하기 어렵다고 생각하므로, 수정해 주었으면 좋겠네요.
htps : // 기주 b. 이런 식으로 ty / t / se t - t t t t t?
Reference
이 문제에 관하여(GitHub Actions의 set-output에 복수행의 표준 출력을 대입하는 경우는 개행 코드를 이스케이프 해 줄 필요가 있다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/chanhama/items/415a0a26bbb186efc47a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
hoge="${hoge//$'\n'/\\n}"
echo "::set-output name=hoge::$hoge"
GitHub Actions에서는 set-output 명령을 이용하여 출력 파라미터에 값을 대입할 수 있습니다.
echo "::set-output name=NAME::VALUE"
에서 NAME
에 VALUE
를 대입할 수 있습니다.이용할 때는
${{ steps.ID.outputs.NAME }}
로 이용합니다. id 값을 지정해야 하므로 대입 시 반드시 id 를 설정하십시오.예를 들면 다음과 같이 사용합니다.
steps:
- id: test_id
name: test_name
run: echo "::set-output name=test::hoge"
- run: echo "${{ steps.test_id.outputs.test }}"
이렇게 하면
${{ steps.test_id.outputs.test }}
에는 hoge
가 대입됩니다.어떤 시간에 사용합니까?
나중 단계에 값을 전달하고 싶을 때 등에 사용합니다. 예를 들어 A 단계에서 명령 실행을 수행하고 B 단계에서 A 단계에서 실행한 명령의 표준 출력을 slack에 통지할 때와 같이 사용하고 싶습니다.
복수행의 표준 출력이라면 1행째 밖에 대입되지 않는다
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
위의 매니페스트는 OS 사용자 목록을 출력합니다. 다중 사용자가 있기 때문에 출력 매개 변수에는 여러 줄의 표준 출력이 할당되어야하지만 실제로는 첫 번째 줄 만 할당됩니다.
줄 바꿈 코드 이스케이프
출력 파라미터에 대입하기 전에 개행 코드를 이스케이프 하는 것으로 복수행을 출력 파라미터에 대입할 수가 있습니다.
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
# エスケープ処理
user_list="${user_list//$'\n'/\\n}"
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
이쪽은 GitHub의 서포트 케이스에 오르고 있습니다만, 이스케이프 처리를 넣어라가 공식 회답이 되고 있습니다. . 일일이 이스케이프 처리를 넣는 것은 번거롭고, 사용하기 어렵다고 생각하므로, 수정해 주었으면 좋겠네요.
htps : // 기주 b. 이런 식으로 ty / t / se t - t t t t t?
Reference
이 문제에 관하여(GitHub Actions의 set-output에 복수행의 표준 출력을 대입하는 경우는 개행 코드를 이스케이프 해 줄 필요가 있다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/chanhama/items/415a0a26bbb186efc47a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
위의 매니페스트는 OS 사용자 목록을 출력합니다. 다중 사용자가 있기 때문에 출력 매개 변수에는 여러 줄의 표준 출력이 할당되어야하지만 실제로는 첫 번째 줄 만 할당됩니다.
줄 바꿈 코드 이스케이프
출력 파라미터에 대입하기 전에 개행 코드를 이스케이프 하는 것으로 복수행을 출력 파라미터에 대입할 수가 있습니다.
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
# エスケープ処理
user_list="${user_list//$'\n'/\\n}"
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
이쪽은 GitHub의 서포트 케이스에 오르고 있습니다만, 이스케이프 처리를 넣어라가 공식 회답이 되고 있습니다. . 일일이 이스케이프 처리를 넣는 것은 번거롭고, 사용하기 어렵다고 생각하므로, 수정해 주었으면 좋겠네요.
htps : // 기주 b. 이런 식으로 ty / t / se t - t t t t t?
Reference
이 문제에 관하여(GitHub Actions의 set-output에 복수행의 표준 출력을 대입하는 경우는 개행 코드를 이스케이프 해 줄 필요가 있다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/chanhama/items/415a0a26bbb186efc47a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
steps:
- id: test_id
name: test_name
run: |
user_list=$(cat /etc/passwd)
# エスケープ処理
user_list="${user_list//$'\n'/\\n}"
echo $user_list
echo "::set-output name=std_out::$user_list"
- run: echo "${{ steps.test_id.outputs.std_out }}"
Reference
이 문제에 관하여(GitHub Actions의 set-output에 복수행의 표준 출력을 대입하는 경우는 개행 코드를 이스케이프 해 줄 필요가 있다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/chanhama/items/415a0a26bbb186efc47a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)