teamdable / vv-deploy-actions

1 stars 0 forks source link

모든 레포에서 동일하게 사용하는 배포로직을 reusable actions로 만들기 #1

Closed hyeseung-of-dable closed 2 years ago

hyeseung-of-dable commented 2 years ago

AS-IS)
팀에서 관리하는 '배포가 필요한' 레포지토리들에 동일한 배포 스크립트들과 action yml파일이 존재. -> 스크립트 코드가 변경될 경우, 모든 레포의 스크립트를 변경해주어야해서 관리가 까다로운 상태

TO-BE) 팀에서 사용하는 github actions를 reusable하게 만들어서 호출?하여 사용

hyeseung-of-dable commented 2 years ago

Custom github actions

github actions를 custom하게 만드는 방법에는 3가지가 있음 ( actions가 생긴지도 오래되지않아서.... 많은 정책/기능이 변경되어와서 꽤 시행착오가 많았음 )

1. Docker container actions

Docker 컨테이너로 코드 & 환경을 패키징

(+) 일관된 환경에서 안정적으로 실행가능

(-) 컨테이너 build, retrieve하는 시간 → 작업이 느림

2. JavaScript actions

러너에서 직접 js코드를 실행

(+) docker컨테이너 작업보다 실행시간 빠름

(+) action code 단순

(-) ?? 언어에 익숙하지않음..!

3. Composite actions

하나의 action에 여러 workflow를 결합할 수 있게 함

4. reusable workflows

가장 최근 2월 10일에 [github blog](https://github.blog/2022-02-10-using-reusable-workflows-github-actions/)에 reusable workflows 라는 글이 올라옴. (21년도에 출시됨)

: 재사용 가능한 워크플로우로, 배포작업은 모든 레포에서 동일하기때문에 모든 작업을 묶어서 하나의 워크플로우로 작성 → 호출?(Uses)을 할 수 있음

(-) vv-deploy-actions가 public repo여야 함.

(+) secrets를 바로 받아서 쓸 수 있음

(+) if 조건문 사용 가능 ( 아직은 활용x )

(+) 각 step들이 구분되어 로깅됨 → 에러가 났을 때, 어느 부분인지 확인이 쉬움

hyeseung-of-dable commented 2 years ago

요약 정리

composite actions reusable workflows
custom하게 actions 생성 다른 workflows를 재사용
👍🏻  private repo여도 PAT로 checkout 가능 public repo만 가능
secrets을 받지못해서, input으로 받게됨. → actions탭에 테스트용도로 cat을 해보면, 패스워드가 노출될 수 있음 👍🏻  secrets 가능
해당 actions를 호출한 곳에서 하나의 step으로 분류됨 → 스텝 별로 분리해서 각자 composite actions를 만들 수는 있음. . . . . . 👍🏻  workflows에서 작성한 step들이 actions탭에서 구분됨