pile·
인프라 / DevOps·카카오 엔터테인먼트 FE카카오 엔터테인먼트 FE·

GitHub Actions workflow를 수동으로 trigger하기(feat. inquirer.js)

카카오웹툰이 브랜치 이름을 파싱해 배포하던 방식을 버리고, `workflow_dispatch` 와 GitHub CLI 로 로컬에서 워크플로를 직접 실행하는 방식으로 바꾼 기록이다. 여기에 `inquirer.js` 를 얹어 터미널에서 브랜치·리전·환경을 골라 배포하게 만든다.

핵심 포인트
  • 기존 방식은 배포용 브랜치를 만들어 push 하고, 그 브랜치 이름(예: `deploy/twn/qa/test`)을 파싱해 리전과 환경을 얻는 구조였다.
  • 그래서 배포할 때마다 로컬에서 브랜치를 최신화하고 새 브랜치를 만들어야 하는 번거로움이 있었다.
  • `workflow_dispatch` 를 쓰면 push 이벤트 없이 워크플로를 수동 실행할 수 있고, `github.event.inputs` 로 값을 받을 수 있다.
  • 실행은 GitHub CLI 의 `gh workflow run` 으로 하며, `--ref` 로 어느 브랜치에서 실행할지, `-F key=value` 로 입력값을 넘긴다.
  • `inquirer.js` 로 터미널 UI 를 만들어 사용자가 브랜치·리전·환경을 고르면 그 값을 `gh workflow` 명령에 넘겨주도록 감쌌다.
상세 정리
  • 이 글은 이전 "카카오웹툰은 GitHub Actions를 어떻게 사용하고 있을까?" 의 연장선으로, 그때 예고한 GitHub CLI 방식 전환을 설명한다.
  • 실습 준비: CRA 로 리액트 프로젝트를 만들어 원격 저장소에 push 한다. 사실 프로젝트가 없어도 `.github/workflows` 폴더만 있으면 GitHub Actions 는 동작한다.
  • 워크플로 작성: `on` 에 push 대신 `workflow_dispatch` 키워드를 넣고, region 과 env 같은 입력값을 정의한다. 원하는 값을 얼마든지 추가할 수 있다.
  • 검증 단계로 수동 트리거 시 inputs 값이 제대로 들어오는지 출력해 확인한다.
  • GitHub CLI 설치는 Mac 기준 터미널 명령 한 줄이며, 공식 설치 안내를 링크로 건다.
  • 인증 함정: 설치만 하고 실행하면 인증 정보가 없다는 에러가 난다. `gh auth login` 으로 웹 인증 코드를 복사·붙여넣어 완료해야 `gh` 명령을 쓸 수 있다.
  • 실행 확인: Actions 탭에서 push 같은 이벤트 없이 워크플로가 수동 트리거된 것과, env·region 값이 입력한 대로 찍힌 것을 확인한다.
  • 반복 부담 해소: 매번 긴 명령을 치지 않도록 package.json 스크립트에 넣어 둔다.
  • `inquirer.js` 도입 이유: 카카오웹툰은 매번 다른 브랜치·리전·환경으로 배포하므로 그 값을 입력받을 UI 가 필요했다. 터미널에서 선택형 입력을 간단히 만들 수 있는 라이브러리다.
  • 구현: `deploy.js` 에서 사용자 입력을 받아 그 값을 `gh workflow` 명령에 넘긴다. CommonJS 가 아닌 ESM 을 써서 package.json 에 `type: module` 을 명시했다.
  • 권한 함정: 실행 시 Permission 에러가 날 수 있어 `deploy.js` 의 권한을 열어 준다. 개발자만 쓰는 파일이라 자유롭게 읽고 쓰게 풀었다고 밝힌다.
  • 결과: 브랜치는 master, env 는 prod, region 은 twn 처럼 사용자가 고른 값이 그대로 Actions 에 반영된다.
  • 정리: 이제 브랜치를 최신화하지도, 만들지도, 파싱하지도 않는다. 다만 이벤트로 실행되는 워크플로도 여전히 함께 존재한다.
왜 읽나배포용 브랜치 이름에 정보를 실어 나르는 방식이 불편한 팀에게 `workflow_dispatch` + GitHub CLI 로 옮기는 전체 경로를 보여준다.
카카오 엔터테인먼트 FE
카카오 엔터테인먼트 FE 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    엔터프라이즈 보안 요구사항을 충족하는 프라이빗 Amazon Bedrock AgentCore 구축하기

    Amazon Bedrock AgentCore의 VPC egress 기능(2026년 4월 추가)을 활용해 온프레미스 LLM·사내 IdP·사내 MCP 서버에 인터넷 노출 없이 연결하는 방법을 다룬다. 규제 산업 엔터프라이즈가 기존 사내 자산을 그대로 유지하면서 Bedrock AgentCore를 안전하게 구축하기 위한 구성 가이드다.

    요약 이어보기
    #mcp#amazon-bedrock#vpc+2
  2. 인프라 / DevOps·gitlab-engGitLab Blog·

    OpenTofu와 Argo CD로 구성하는 GitLab 기반 AWS 제어 플레인

    GitLab을 단일 제어 플레인으로 삼아 OpenTofu로 AWS 인프라를 프로비저닝하고, Argo CD로 GitOps 기반 애플리케이션 배포까지 자동화하는 엔드투엔드 튜토리얼이다. VPC·EKS 클러스터 구성부터 Helm 기반 툴 설치, 샘플 앱 배포까지 모든 과정이 GitLab CI/CD 파이프라인으로 연결된다.

    요약 이어보기
    #kubernetes#aws-eks#gitops+2
  3. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    Amazon Bedrock 기반 사내 LLM, 키 발급부터 비용 차단까지: F&F의 LiteLLM 게이트웨이 운영 사례

    패션 기업 F&F가 Amazon Bedrock과 LiteLLM 프록시를 결합해 구축한 사내 LLM 플랫폼 운영 사례다. API 키 셀프서비스 발급, 모델별 접근 승인 워크플로, 사용자·프로젝트별 예산 자동 차단까지 전 과정을 직접 구현한 아키텍처 결정과 운영 교훈을 공유한다.

    요약 이어보기
    #kubernetes#amazon-bedrock#litellm+2