[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
의견
이렇게 하는게 권장하는 방법인지는 모르겠으나 검색했더니 나온 결과가 있어서 사용했다.