Github 작업으로 golang 모듈 릴리스 구성
설마. 적절하게 배포된 모듈에는 태그가 지정되고 버전이 지정되어야 사람들이 명시적인 버전 관리를 통해 프로덕션 용도로 모듈을 신뢰할 수 있습니다.
버전 관리
패키지 버전을 범프할 시기와 방법을 어떻게 결정합니까? 운 좋게도 바퀴를 재발 명할 필요가 없습니다. golang 커뮤니티 내부 및 외부의 대부분의 패키지는 SemVer, TL;DR을 따릅니다.
.
) -> 1.2.5
실제 응용 프로그램을 변경할 수 있는 사소한 절충점과 개인적인 취향이 있습니다. 그래도 핵심 개념은 저 3가지 정도로 단순하고, 그 토대 위에서
semantic-release
패키지가 만들어졌다.시맨틱 릴리스 / 시맨틱 릴리스
📦🚀 완전히 자동화된 버전 관리 및 패키지 게시
📦🚀 시맨틱 릴리스
완전히 자동화된 버전 관리 및 패키지 게시
semantic-release는 다음 버전 번호 결정, 릴리스 정보 생성 및 패키지 게시를 포함한 전체 패키지 릴리스 워크플로우를 자동화합니다.
이것은 Semantic Versioning 사양을 엄격히 따르고 변경 사항의 영향을 소비자에게 전달하여 인간의 감정과 버전 번호 사이의 즉각적인 연결을 제거합니다.
Trust us, this will change your workflow for the better. – egghead.io
하이라이트
Trust us, this will change your workflow for the better. – egghead.io
어떻게 작동합니까?
저지르다
…View on GitHub
커밋
적절한 커밋 규칙을 사용하는 것은 버전을 관리하고 최신 변경 로그를 쉽게 유지하는 데 중요합니다. 나는 몇 년 동안 Convetional Commit을 사용하고 있습니다. 내 관점에서 보면 가장 쉽게 채택하고 관리할 수 있으며 투자 대비 효과가 뛰어납니다.
태그 및 릴리스
Convetional Commit 을 사용 중이고 적절한 시맨틱 버전 관리를 원한다고 가정합니다. 이 경우 최선의 선택은 시맨틱 릴리스 패키지입니다.
이 도구는 nodejs 환경용으로 설계된 JS로 작성되었기 때문에 처음에는 이상하게 보일 수 있습니다. 그래도 GitHub 및 GitHub 작업을 사용하여 이러한 구현 세부 정보를 추상화할 수 있습니다.
golang을 사용한 시맨틱 버전
패키지는 GitHub 리포지토리에 릴리스 및 태그를 생성합니다. 내go-again repository에서 예를 확인할 수 있습니다.
GitHub 작업 구성과 .releaserc
파일이 모두 필요합니다.
name: Release
on:
push:
branches:
- main
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Release
uses: codfish/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
그리고 .releaserc
branches:
- name: "main"
plugins:
- "@semantic-release/commit-analyzer"
- "@semantic-release/release-notes-generator"
- "@semantic-release/GitHub"
커밋을 리포지토리에 병합하거나 푸시할 때마다 시맨틱 버전 관리에 대한 기존 커밋에 따라 새 버전을 얻게 됩니다.
name: Release
on:
push:
branches:
- main
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Release
uses: codfish/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
branches:
- name: "main"
plugins:
- "@semantic-release/commit-analyzer"
- "@semantic-release/release-notes-generator"
- "@semantic-release/GitHub"
BREAKING CHANGES
-> 메이저 커밋
type
을 시맨틱 버전 범프로 변환하는 것은 commit-analyzer package을 사용하여 구성할 수 있습니다.
Reference
이 문제에 관하여(Github 작업으로 golang 모듈 릴리스 구성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/juanvegadev/configure-the-release-of-your-golang-module-with-github-actions-nb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)