Workflow Trigger 이란
Workflow는 특정한 이벤트들에 의해 Trigger된다. Workflow가 Trigger되면 내부의 조건에 따라 Job들이 돌아가게 되며, 결과를 내보낸다.
Trigger 한 개 만들기
보통 아래와 같이 'name: ' 아래의 on: 으로 설정을 한다. 아래의 on: workflow_dispatch는 유저가 직접 이 Workflow를 실행을 눌러야 실행되는 옵션이다.
# WorkFlow의 이름 설정
name: First workflow
# on: Work Flow가 언제 실행되어야 하는지 설정
# workflow_dispatch : 유저가 직접 실행하도록 설정하는 옵션
on: workflow_dispatch
이런 식으로 여러 Trigger을 만들어 Workflow가 실행되도록 만들 수 있다.
둘 이상의 Trigger 만들기
위에서는 하나의 Trigger만 사용했지만 만약 둘 이상의 Trigger을 만들려면 어떻게 해야 할까? 바로 다음과 같이 하면 된다. 각 줄마다 Trigger을 만들어 낼 수 있다.
on:
workflow_dispatch #Trigger1
push: #Trigger2
branches:
- main
- 'feature/**'
위의 경우는 특정 브랜치들에 푸시가 생겼을 때 돌아가게 만들 Trigger인데 위 branches 내부의 값은 다음과 같이도 쓸 수 있다.
on:
workflow_dispatch
push:
branches: [ "main", "feature/**" ]
Trigger에 값 설정하기
Trigger에는 값을 설정할 수도 있다. is_log_environment라는 boolean 타입을 넣은 다음 job을 실행할 때 실행환경 로깅을 하고 싶다면 아래와 같이 작성하면 된다.
on:
workflow_dispatch:
inputs:
is_log_environment:
description: 'Log environment'
required: true
type: boolean
jobs:
log-environment:
runs-on: ubuntu-latest
if: ${{ inputs.is_log_environment }}
steps:
- name: log environment
run: echo test log environment
inputs.is_log_environment 를 통해 값이 true인 변수를 참조하고 이에 따라 로깅을 하는 step을 진행하도록 할 수 있다.
반응형