# TIL-20211109

# Daily

  • github actions을 이용한 CD 구현

# Contents

# Github Actions을 이용해 무중단 배포하기

처음 기획은,

workflow 파일을 역할별로 구별하여 구현하고, 이후에 하나의 파일에서 Jobs를 통해 해당 workflow를 실행하는 방식으로 구현하고자 했다.

문제점 : 🔥
=> 현재 사용하고 있는 프로젝트 repository는 비공개(private)로 되어있어 외부에서 접근이 불가능하다.
하지만, 이 부분은 같은 레포지토리에 있는 workflow에 접근한다면 문제가 되지 않는것으로 파악했다.

workflow syntax document에서 외부 workflow 파일을 참조하는 방식은 두 가지로 나뉘어 지는데,

  1. repository_dispatch
  2. workflow_dispatch
  3. workflow_call

두 가지 이벤트 trigger를 설정하여 workflow를 실행하는 조건을 설정 할 수 있다.

  • repository_dispatch curl을 통해서 default repo에서 workflow를 실행하도록 설정 할 수 있다.

  • workflow_dipatch curl을 통해서 원하는 branch에 workflow를 실행할 수 있다. actions 탭에서 workflow를 실행할 수 있다.

  • workflow_call 다른 workflow에서 해당 workflow을 실행하게 할 수 있다.

    Ref: Github Actions workflow (opens new window)

workflow_call를 통해서 실행하려고 했지만, 해당 경로의 workflow를 찾지 못하는 에러가 발생했다. 같은 경로의 workflow를 실행할 수 있다고 했지만, 해당 경로의 workflow에 접근권한이 없는것 처럼 나타난다.

이번 프로젝트에서는 jobs을 단계적으로 생성하고 needs에 이전 job을 할당하여, 작업 완료에 따른 프로세스를 구성했다.