2025. 9. 29. 16:46ㆍCI\CD/Github Actions
workflow dispatch는 사용자가 직접 수동으로 worflow를 실행할 수 있는 수동 실행 트리거이다.
추후에 확인하겠지만 레포지토리의 Action탭에서 Run workflow라는 버튼이 생겨 직접 실행하거나 API나 CLI로 실행할 수 있게 된다.
보통 즉시 수동으로 배포 혹은 롤백 해야하거나, 핫픽스 , 임시 스크립트 실행, schedule 지연시 수동 보정등의 작업을 위해서 사용된다.
기본적으로 레포지토리에 write 이상의 권한이 존재하는 경우의 사용자만 실행이 가능하고 조직 정책 및 규칙에 따라서 추가로 승인을 해줘야 할 수 도 있다.
또한 실행 시 사용자의 입력을 받아 job에서 활용하는게 가능하다.
입력값은 문자열로 들어가며 github.event.inputs.<name>으로 접근이 가능하다.
또한 보다 싶이 default branch에 workflow가 존재해야지만 workflow가 실행된다.
아마 보면서 하는게 쉬우니까 일단 하나 만들면서 확인해보도록 하자.
yaml파일을 하나 생성해주고
기본적인 workflow의 이름과 이벤트를 지정하고
이제 여기서 input값을 받기 위해서는 이벤트의 하위에 inputs가 추가되어야한다.
그리고 이 아래에 input을 받아줄 값의 명칭을 지정하고
이제 받았을때 이걸 어떤 타입으로 받을지를 지정할 수 있다.
이때 string | number | boolean | choice로 선택이 가능 하며
이는 입력할때 원하는 타입의 데이터가 들어오기를 지정할 수 있는 방식이다.
다만 이렇게 입력을 받아도 내부적으로 사용될때는 문자열로 변환되어 사용된다.
그러면 타입을 지정하는 이유가 없다고 생각할 수 있는데 그 부분은 뒤에서 확인해보자.
일단 타입에 맞게 하나씩 만들어주도록 하자.
여기서 choice의 경우는 선택을 위한 option을 제공해줘야 한다.
option의 항목은 -를 기준으로 구분된다.
여기에 추가적으로 작성할 수 있는 부분은 default 이다.
이건 말 그대로 그냥 아무것도 선택하지 않았을때 default로 들어올 값에 대해서 설정하는 것이다.
여기에 또 추가할 수 있는 부분은 무조건 값을 줘야 한다 라는 속성의 required이고 이는 true/false로 설정이 가능하다.
물론 default 값이 있는 경우는 주지 않아도 에러를 만들지는 않는 것으로 보인다.
이제 job 부분은 step부분에서 각각의 데이터를 꺼내다 확인이 가능하고
이건
보다싶이 github처럼 컨텍스트이기 때문에 input.<이름>으로 값의 조회가 가능하다.
다만 github.event.input.<이름>으로도 조회가 가능하다는 것을 알아두자.
여기서 값들은 fromJSON을 사용해서 값을 전달하면 값의 형태에 따라 자동으로 형변환을 시켜준다.
이렇게 사용하면 된다.
이제 한번 저장하고 commit & push 해보자.
잘 올라왔고 이제 Actions탭으로 이동해보자.
Actions에 있는 workflow를 클릭해보면
아래와 같이 수동으로 워크 플로우를 run 할수 있는 버튼이 생겼다
눌러서 보면
이렇게 값을 전달할 수 있는 항목들이 생겼는데 최초에 타입을 지정할 수 있지만 내부적으로는 string이다
그러면 왜 타입을 지정하냐에 대한 답변이 될수 있는 내용으로 boolean을 가지는 항목의 경우는
위와 같이 체크박스의 형태로 구성이 되어 true 아니면 false를 제외한 값은 전달 할 수 없도록 UI를 생성해주고
choice도 값을 원하는 형태로 제한 할 수 있다.
물론 number와 string은 제한할 수 없긴 하다만 이렇게 제한을 어느정도로 둬서 들어오는 값에서 최대한 에러가 적게 끔 만들 수 있는 방식이라고 생각하면 될것 같다.
이렇게 해놓고 Run workflow를 해보면
이렇게 workflow가 돌아가게 되고
이렇게 값을 벹어내게 된다.
'CI\CD > Github Actions' 카테고리의 다른 글
Github Actions - workflow 다중 이벤트 등록 (0) | 2025.09.29 |
---|---|
Github Actions - schedule (0) | 2025.09.29 |
Github Actions - Issues Comment (0) | 2025.09.29 |
Github Actions - Issues (0) | 2025.09.29 |
Github Actions - Pull Request (0) | 2025.09.27 |