Semantic Release는 다음을 포함하여 전체 패키지 릴리스 워크 플로를 자동화합니다. 다음 버전 번호 결정, 릴리스 노트 생성 및 패키지 게시.
이것은 인간의 감정과 버전 번호 사이의 즉각적인 연결을 제거하며, 의미 론적 버전 작성 사양에 따라 소비자에 대한 변화의 영향을 전달합니다.
우리를 믿으십시오. 이것은 당신의 워크 플로를 더 잘 바꿀 것입니다. - egghead.io
완전 자동 릴리스
시맨틱 버전화 사양을 시행합니다
새로운 기능과 수정 사항은 즉시 사용자가 사용할 수 있습니다
새로운 릴리스를 관리자와 사용자에게 알립니다
공식화 된 커밋 메시지 규칙을 사용하여 코드베이스의 변경 사항을 문서화하십시오.
git 합병을 기반으로 한 다양한 배포 채널 (예 : NPM Dist-Tags)에 게시
지속적인 통합 워크 플로와 통합하십시오
수동 릴리스와 관련된 잠재적 오류를 피하십시오
플러그인을 통해 패키지 관리자 및 언어를 지원합니다
공유 가능한 구성을 통한 간단하고 재사용 가능한 구성
GitHub 행동에 대한 서명 된 증명을 통해 공급망 보안 증가를 촉진하는 NPM 패키지 출처 지원
Semantic Release는 커밋 메시지를 사용하여 코드베이스 변경의 소비자 영향을 결정합니다. 커밋 메시지에 대한 공식화 된 규칙에 따라 Semantic Release는 다음 시맨틱 버전 번호를 자동으로 결정하고 변경 로그를 생성하며 릴리스를 게시합니다.
기본적으로 Semantic Release는 Angular Commit Message Conventions를 사용합니다. Commit Message Format은 @semantic reelease/commit-analyzer의 preset 또는 config 옵션 및 @semantic reelease/release-notes-generator 플러그인으로 변경할 수 있습니다.
Commitizen 또는 Commitlint와 같은 도구를 사용하여 기고자를 돕고 유효한 커밋 메시지를 시행 할 수 있습니다.
아래 표는 semantic-release 실행될 때 어떤 릴리스 유형을 가져 오는지 커밋 메시지를 보여줍니다 (기본 구성 사용).
| 커밋 메시지 | 릴리스 유형 |
|---|---|
fix(pencil): stop graphite breaking when too much pressure applied | 패치 수정 릴리스 |
feat(pencil): add 'graphiteWidth' option | 사소한 기능 릴리스 |
perf(pencil): remove graphiteWidth optionBREAKING CHANGE: The graphiteWidth option has been removed.The default graphite width of 10mm is always used for performance reasons. | 주요 브레이킹 릴리스 ( BREAKING CHANGE: 토큰은 커밋의 바닥 글에 있어야합니다) |
시맨틱 릴리스는 릴리스 브랜치에 성공적으로 구축 한 후 CI 환경에서 실행되어야합니다. 이런 식으로 릴리스 프로세스에 직접 관여하는 사람은 없으며 릴리스는 비교적이며 불분명 한 것으로 보장됩니다.
next beta 중 main git push 예 semantic-release master 마지막 릴리스 이후 패키지 기능에 영향을 미치는 코드베이스 변경이있는 경우 릴리스를 작성하십시오.
Semantic Release는 출판 된 릴리스의 타이밍, 내용 및 청중을 제어하는 다양한 방법을 제공합니다. 다음 레시피의 예제 워크 플로를 참조하십시오.
배포 채널 사용
유지 보수 릴리스
사전 방출
테스트를 실행 한 후 semantic-release 명령은 다음 단계를 실행합니다.
| 단계 | 설명 |
|---|---|
| 조건을 확인하십시오 | 릴리스를 진행할 모든 조건을 확인하십시오. |
| 마지막 릴리스를 받으십시오 | GIT 태그를 분석하여 마지막 릴리스에 해당하는 커밋을 얻습니다. |
| 커밋을 분석하십시오 | 마지막 릴리스 이후 추가 된 커밋을 기반으로 릴리스 유형을 결정하십시오. |
| 릴리스를 확인하십시오 | 릴리스 적합성을 확인하십시오. |
| 메모를 생성하십시오 | 마지막 릴리스 이후 추가 된 커밋에 대한 릴리스 노트를 생성합니다. |
| git 태그를 만듭니다 | 새 릴리스 버전에 해당하는 GIT 태그를 만듭니다. |
| 준비하다 | 릴리스를 준비하십시오. |
| 게시 | 릴리스를 게시하십시오. |
| 알림 | 새로운 릴리스 또는 오류를 알립니다. |
Semantic Release를 사용하려면 다음과 같습니다.
git 저장소에서 코드를 호스팅합니다
자격 증명을 안전하게 설정할 수있는 지속적인 통합 서비스를 사용하십시오.
지속적인 통합 환경에 설치된 버전 요구 사항을 충족하는 Git CLI 버전
지속적인 통합 환경에 설치된 버전 요구 사항을 충족하는 Node.js 버전
용법
시작하기
설치
CI 구성
구성
플러그인
워크 플로 구성
공유 가능한 구성
확장
플러그인
공유 가능한 구성
레시피
CI 구성
GIT 호스팅 서비스
워크 플로 릴리스
개발자 가이드
JavaScript API
플러그인 개발
공유 가능한 구성 개발
지원하다
자원
자주 묻는 질문
문제 해결
노드 버전 요구 사항
노드 지원 정책
Github 토론
스택 오버플로
지저귀다
사람들에게 당신의 패키지는 Semantic Release를 사용하여 게시되며 어떤 Commit-Convention 이후이 배지를 Readme에 포함시킬 수 있음을 사람들에게 알리십시오.
[! /시맨틱 릴리스)
![]() | ![]() | ![]() |
|---|---|---|
| 그레고르 마티 누스 | 피에르 반 두신 슬레이거 | Matt Travi |
![]() | ![]() | ![]() | ![]() | ![]() |
|---|---|---|---|---|
| 스테판 본 네만 | Rolf Erik Lekang | Johannes Jörg Schmidt | Finn Pauls | Christoph Witzko |
