참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.
소개
Jenkins 및 GitHub Actions를 사용하면 코드를 자동으로 빌드, 테스트, 게시, 릴리스 및 배포하는 워크플로를 만들 수 있습니다. Jenkins 및 GitHub Actions는 워크플로 구성에서 몇 가지 유사점을 공유합니다.
- Jenkins는 GitHub Actions 워크플로 파일과 유사한 선언적 파이프라인을 사용하여 워크플로를 만듭니다.
- Jenkins는 스테이지를 사용하여 단계의 컬렉션을 실행하는 반면GitHub Actions는 작업을 사용하여 하나 이상의 단계 또는 개별 명령을 그룹화합니다.
- Jenkins 및 GitHub Actions는 컨테이너 기반 빌드를 지원합니다. 자세한 내용은 “Docker 컨테이너 작업 만들기”를 참조하세요.
- 단계 또는 작업을 다시 사용하고 커뮤니티와 공유할 수 있습니다.
자세한 내용은 “GitHub Actions에 대한 핵심 개념”을 참조하세요.
주요 차이점
- Jenkins에는 파이프라인을 만들기 위한 두 가지 유형의 구문인 선언적 파이프라인과 스크립팅된 파이프라인이 있습니다. GitHub Actions는 YAML을 사용하여 워크플로 및 구성 파일을 만듭니다. 자세한 내용은 “GitHub Actions의 워크플로 구문”을 참조하세요.
- Jenkins 배포는 일반적으로 자체 호스팅되며 사용자는 자체 데이터 센터에서 서버를 유지 관리합니다. GitHub Actions는 자체 호스팅 실행기를 지원하는 동시에, 작업을 실행하는 데 사용할 수 있는 자체 실행기를 호스팅하여 하이브리드 클라우드 접근 방식을 제공합니다. 자세한 내용은 “자체 호스트 실행기 정보”를 참조하세요.
기능 비교
빌드 배포
Jenkins를 통해 단일 빌드 에이전트에 빌드를 보내거나 여러 에이전트에 배포할 수 있습니다. 운영 체제 유형과 같은 다양한 특성에 따라 에이전트를 분류할 수도 있습니다.
마찬가지로 GitHub Actions는 GitHub 호스팅 또는 자체 호스팅 실행기로 작업을 보낼 수 있으며, 레이블을 사용하여 다양한 특성에 따라 실행기를 분류할 수 있습니다. 자세한 내용은 “GitHub Actions 이해” 및 “자체 호스팅 실행기 정보”를 참조하세요.
섹션을 사용하여 파이프라인 구성
Jenkins는 선언적 파이프라인을 여러 섹션으로 분할합니다. 마찬가지로 GitHub Actions는 워크플로를 별도의 섹션으로 구성합니다. 아래 표에서는 Jenkins 섹션을 GitHub Actions 워크플로와 비교합니다.
Jenkins 지시문 | GitHub Actions |
---|---|
agent | jobs.<job_id>.runs-on jobs.<job_id>.container |
post | |
stages | jobs |
steps | jobs.<job_id>.steps |
Using 지시문
Jenkins는 지시문을 사용하여 선언적 파이프라인을 관리합니다. 지시문은 워크플로의 특성 및 실행 방법을 정의합니다. 아래 표에서는 이 지시문이 GitHub Actions의 개념에 매핑되는 방법을 보여 줍니다.
순차 스테이지 사용
병렬 작업 처리
Jenkins는 stages
및 steps
를 병렬로 실행할 수 있지만 현재 GitHub Actions는 병렬로만 작업을 실행합니다.
Jenkins 병렬 | GitHub Actions |
---|---|
parallel | jobs.<job_id>.strategy.max-parallel |
행렬
GitHub Actions 및 Jenkins 모두 매트릭스를 사용하여 다양한 시스템 조합을 정의할 수 있습니다.
Jenkins | GitHub Actions |
---|---|
axis | strategy/matrix context |
stages | steps-context |
excludes |
단계를 사용하여 작업 실행
Jenkins는 steps
stages
에서 함께 그룹화합니다. 각 단계는 스크립트, 함수 또는 명령일 수 있습니다. 마찬가지로 GitHub Actions는 jobs
를 사용하여 steps
의 특정 그룹을 실행합니다.
Jenkins | GitHub Actions |
---|---|
steps | jobs.<job_id>.steps |
일반 작업의 예
cron
을 사용하여 실행할 파이프라인 예약
Jenkins 파이프라인 | GitHub Actions 워크플로 |
---|---|
|
|
파이프라인에서 환경 변수 구성
Jenkins 파이프라인 | GitHub Actions 워크플로 |
---|---|
|
|
업스트림 프로젝트에서 빌드하기
Jenkins 파이프라인 | GitHub Actions 워크플로 |
---|---|
|
|
여러 운영 체제를 사용하여 빌드하기
Jenkins 파이프라인 | GitHub Actions 워크플로 |
---|---|
|
|