[CI/CD] workflow_dispatch와 workflow_call을 사용하지 않을 때 기본값 설정하기
workflow_dispatch와 workflow_call을 사용하지 않을 때 기본값 설정하기
환경
- Github Actions
배경
- Github Actions에서 workflow_dispatch와 workflow_call에 정의된
inputs
을 사용하는 부분이 있었는데 이 부분이 push와 같이 다른 이유로 호출될 때 사용하지 못하는 이슈가 발생하여 기본값을 설정해두면 대처가 가능할거 같아 찾아서 정리했다.
방법
- push와 같이 workflow_dispatch와 workflow_call이 아니라서
inputs
을 사용할 수 없는 경우 기본값을 설정할 수 있다. - workflow_dispatch 또는 workflow_call을 통해 실행된 workflow의 경우
inputs
에 명시된 값을 사용하고 그렇지 않다면||
뒤에 나온 기본값을 사용하는 방식이다. - 기본값을 환경변수에 저장하고 그 환경변수를 가져오는 방식이다.
코드
name: Workflow Return Test
on:
push:
branches: [ main ]
workflow_call:
inputs:
key:
type: string
workflow_dispatch:
inputs:
key:
type: string
jobs:
print_default_value_test:
name: print value
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set default value
run: |
echo "VALUE_NAME=${{ inputs.key || "default value" }}" >> $GITHUB_ENV
- name: Print value
run: echo "${{ env.VALUE_NAME }}"
결과
- push를 통해 실행된 경우
Run echo "default value"
echo "default value"
shell: /usr/bin/bash -e {0}
env:
VALUE_NAME: default value
default value
- “test input value”라는 문자열 값을 전달해 workflow_dispatch 또는 workflow_call을 통해 실행된 경우
Run echo "test input value"
echo "test input value"
shell: /usr/bin/bash -e {0}
env:
VALUE_NAME: test input value
test input value
의견
이렇게 하는게 권장하는 방법인지는 모르겠으나 검색했더니 나온 결과가 있어서 사용했다.