devops - GITHUB_OUTPUT 사용 불가?
1 minute read
Introduction
Github Actions를 사용하다 보면 이전 스텝에서 진행한 값들을 참조해야 할 때가 있습니다.
이때 GITHUB_OUTPUT
이라는 변수를 활용하여 해결할 수 있습니다.
jobs:
job1:
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
output1: $
output2: $
steps:
- id: step1
run: echo "test=hello" >> "$GITHUB_OUTPUT"
- id: step2
run: echo "test=world" >> "$GITHUB_OUTPUT"
job2:
runs-on: ubuntu-latest
needs: job1
steps:
- env:
OUTPUT1: $
OUTPUT2: $
run: echo "$OUTPUT1 $OUTPUT2"
하지만 github-hosted가 아닌 self-hosted라면 얘기가 복잡해집니다.
self-hosted를 사용하면 GITHUB_OUTPUT
이라는 변수를 활용할 수 없을 수도 있습니다.
self-hosted의 runner의 버전을 올리면 가능할 수 있지만, 여러 이유들(해당 self-hosted에서 여러 runner가 돌고 있는 등)로 업그레이드가 어려울 수 있습니다.
여러 가지 편법을 시도해봅니다.
# way1.
## step1.
export build_info=$(.....)
## step2.
echo $build_info
## result: 실패
# way2.
## step1.
echo "export build_info=$(...)" >> ~/.bashrc
source ~/.baserc
## step2.
echo $build_info
## result: 실패
Solution
태그명 같은 경우 글로벌 변수처럼 전체적인 과정에서 여러 번 사용하기 떄문에 해당 결과를 파일로 생성하고 읽어오는 방식으로 해결하였습니다.
## step1
echo `...` > build_info
## step2
echo $(cat build_info)
## resutl: 성공
I feedback.
Let me know what you think of this article in the comment section below!
Let me know what you think of this article in the comment section below!
comments powered by Disqus