위키득계정 ↗
기술

GoReleaser

GoReleaser기술
주요 역할
소프트웨어 릴리스 자동화
설정 파일
.goreleaser.yaml
기본 조건
깨끗한 작업 트리
버전 형식
SemVer 호환 버전
GoReleaser는 소프트웨어의 빌드와 패키징, 게시와 릴리스 알림을 설정에 따라 자동화하는 도구다. 릴리스 작업을 단계로 나누고 산출물을 준비해 지정한 배포 대상으로 전달한다.

릴리스를 여러 단계로 구성

실행 과정은 기본값 적용과 빌드, 게시와 알림이라는 큰 단계로 나뉜다. 빌드 단계에서 바이너리와 압축 파일, 패키지와 컨테이너 이미지 등을 준비한다. 설정에 따라 필요한 산출물을 구성하는 흐름이므로 단순히 소스에 버전 번호만 붙이는 작업과 다르다.

준비한 산출물 게시

게시 단계에서는 설정한 코드 호스팅 서비스나 컨테이너 레지스트리, 객체 저장소 등으로 결과를 전달한다. 이어서 선택한 채널로 릴리스 알림을 보낼 수 있다. 빌드가 성공한 상태와 실제 배포 대상에 게시된 상태는 서로 다른 단계의 결과다.

입력 상태와 실행 제어

설정 파일과 깨끗한 작업 트리, SemVer에 맞는 버전을 전제로 한다. 일부 단계를 건너뛰는 실행 옵션도 제공하며 앞 단계가 실패하면 다음 단계는 실행하지 않는다. 어떤 결과가 만들어지고 공개되는지 판단하려면 사용한 설정과 실제 완료한 단계를 함께 확인해야 한다.

관련 문서

Release Please / Semantic-release / Git-cliff / Changie / Changesets