320x100
320x100

깃허브 액션

: 깃허브 저장소를 기반으로 소프트웨어 개발 Workflow를 자동화 할 수 있는 도구

: Workflow는 Runners라고 불리는 깃허브에서 호스팅하는 서버나 사용자가 직접 호스팅하는 환경에서 직접 구동시킬 수 있음

 

- 장점

: 다른 사람들의 워크 플로우를 쉽게 가져다 쓸 수 있음 (재사용)

: 깃허브에 통합된 시스템이기 때문에 깃허브와 연동성이 좋음

: 리눅스, 맥, 윈도우, ARM 및 컨테이너를 쉽게 빌드하고 테스트 할 수 있음

: 라이브로그를 지원

: 다중 컨테이너 테스트를 지원

: 여러 운영제체 및 런타임 버전에서 동시에 테스트 할 수 있음

: 모든 언어 및 애플리케이션에 대한 빌드, 테스트, 배포를 지원


- 단점

: 워크플로우는 레포지터리마다 최대 20개까지만 등록 가능

: 워크플로우 내 Job이라는 단계마다 6시간 동안만 실행 가능하며 초과 시 자동으로 중지됨

: 깃허브 계정 플랜에 따라 전체 깃 저장소를 통틀어 동시 실행할 수 있는 Job 개수가 정해져있음

: Job 안에서 깃허브 API를 호출하면 1시간에 1000번까지만 가능

 

- 비고

: public 레포지터리의 경우 무료

: private 저장소의 경우 해당 계정에 부여된 무료 사용량 이후에 과금

: 깃허브 무료 계정의 전체 비공개 저장소를 기준으로 한달에 500MB 스토리지와 실행시간 2000분까지 제공됨

 

 

 

 

 

 

젠킨스

: 거의 모든 언어와 소스코드 레포지터리에 대한CI와 CD를 제공하는 오픈소스 도구

: 일상적인 작업 자동화 뿐만 아니라 파이프라인을 이용해 거의 모든 언어의 조합과 소스코드 레포지터리를 지원

: 빌드, 테스트, 배포 등의 과정을 통합할 수 있는 간편한 방법을 제공

 

- 장점

: 프로젝트의 표준 컴파일 환경에서 컴파일 오류 검출

: 자동화 테스트 수행 가능

: 코딩 규약 준수 여부 체크 가능

: 프로파일링을 통해 소스 변경에 따른 성능 변화 감시

: 테스트 환경에 대한 배포 작업

: 개발 업무를 도와주는 많은 플러그인을 보유

 

 

 

 

 

깃허브 액션 VS 젠킨스

- 빌드 서버

: 깃허브 액션 (깃허브 서버를 사용하거나 별도의 개인 서버를 사용 가능)

: 젠킨스 (필수적으로 필요)

 

- 배포 시간

: 깃허브 액션 (비동기로 동작하기 때문에 배포 작업 시 빠르게 작동)

: 젠킨스 (동기 방식으로 동작하기 때문에 배포 시 작업이 많은 경우 빌드가 밀리는 경우 발생)

 

- 깃허브와의 호환성

: 깃허브 액션 (모든 깃허브 이벤트에 대한 작업을 제공하고 다양한 언어와 프레임워크를 지원)

: 젠킨스 (계정 및 트리거를 기반으로 빌드를 중심으로 동작하기 때문에 깃허브 이벤트를 준수하지 않음)

 

- 호환성

: 깃허브 액션 (모든 환경과 호환)

: 젠킨스 (환경 호환성을 위해서는 도커 이미지에서 실행 필요)

 

- 캐싱

: 깃허브 액션 (자체 캐싱 메커니즘을 작성해야함)

: 젠킨스 (캐싱 메커니즘을 위한 다수의 플러그인)

 

- 공유

: 깃허브 액션 (깃허브 마켓 플레이스에 자신의 워크 플로우 공유 가능. 다른 사람의 워크플로우를 재사용 가능)

: 젠킨스 (공유 불가)

 

- 문서

: 깃허브 액션 (문서가 적은 편)

: 젠킨스 (전세계적으로 다양한 문서가 존재)

 

- 컨테이너

: 깃허브 액션 (다중 컨테이너 테스트를 지원하며, 도커 실행으로 작동되기 때문에 실행 및 디버깅이 쉬움)

: 젠킨스 (플러그인이 필요하며, 개인이 만든 것이기 때문에 불완전)

 

 

 

 

 

둘 중에 무엇을 골라야 할까?

- 기술스택이 다양한 프로젝트

: 다양한 IDE를 사용하거나 커스터마이징이 많은 경우 유연성이 뛰어난 젠킨스를 추천

: 언어만 다른 경우에는 다른 사항들을 따져보고 결정

 

- 규모가 작은 프로젝트

: 별도의 빌드 서버가 필요없는 깃허브 액션을 추천

: 젠킨스의 경우 빌드 서버에 대한 호스팅을 일일이 해줘야하기 때문

 

- 규모가 큰 프로젝트

: 빌드 서버를 따로 둘 수 있다면 젠킨스를 추천

: 깃허브 액션의 경우 워크 플로우의 개수 제한 등 다양한 제약이 있기 때문

 

- 서버리스 혹은 외부 클라우드를 사용

: 리소스 소비를 줄일 수 있는 깃허브 액션을 추천

: 젠킨스의 경우 호스팅이 하나 더 필요하거나 배포 환경과 리소스를 함께 사용해야하기 때문

 

- 초보자

: 깃허브에서 공식으로 관리해주는 깃허브 액션을 추천

: 인프라에 대한 지식이 있고 문서를 잘 볼 줄 안다면 젠킨스를 사용해보는 것도 좋음

 

 

 

 

 

 

 

 

Reference

 

[CI/CD] Jenkins 과 GitHub Actions의 개념, 차이점

[CI/CD] Jenkins 과 GitHub Action의 개념, 장단점에 대해 포스팅하겠습니다. JenKins와 GitHub Action 소개와 차이점을 앞서 배포, 빌드, 컴파일에 대해 간략하게 알고 싶다면 아래 링크를 참고해주세요. ▶빌

choseongho93.tistory.com

 

300x250
728x90