깃허브 워크플로우 중 PULL_REQUEST 이벤트에서 활용할 수 있는 액션입니다.
기본 브랜치로 병합이 지정된 풀 리퀘스트가 완료될 때, 기본 브랜치로 병합이 발생하는 경우 풀 리퀘스트의 라벨에 따라 다음 버전 이름을 제안합니다.
깃 태그 이름 중 SEMVER1 형식의 태그 이름을 검색해서, 최신 버전에 해당하는 태그 이름을 찾습니다.
SEMVER1 형식의 깃 태그를 찾을 수 없는 경우 1.0.0 을 제안합니다.
최신 버전에 해당하는 깃 태그를 찾은 경우, 지정된 풀 리퀘스트에 지정되어 있는 라벨을 기준으로 주 버전, 부 버전, 패치 버전을 1 증가 시킨 버전 이름을 제안합니다.
| Name | Required | Description |
|---|---|---|
| github_token | ✅ | 깃허브 개인 인증 토큰 (PAT); 저장소 읽기 권한이 필요합니다. |
| pr | ✅ | 풀 리퀘스트 번호; 예) 100 |
| major_labels | ✅ | 주 버전이 증가하는 풀리퀘스트 라벨 이름 목록; 쉼표로 구분 |
| minor_labels | ✅ | 부 버전이 증가하는 풀리퀘스트 라벨 이름 목록; 쉼표로 구분 |
| patch_labels | ✅ | 패치 버전이 증가하는 풀리퀘스트 라벨 이름 목록; 쉼표로 구분 |
| next_version_prefix | 다음 버전 이름 접두어 |
현재 워크플로우가 실행되고 있는 저장소에 대한 작업인 경우 github_token 에 입력할 깃허브 개인 인증 토큰의 값은 미리 정의된 변수 중 하나를 사용할 수 있습니다.
github.tokensecrets.GITHUB_TOKEN현재 워크플로우가 실행된 이벤트 트리거가 pull_request 인 경우 pr 에 입력할 풀 리퀘스트 번호의 값은 현재 컨텍스트의 이벤트 데이터를 사용할 수 있습니다.
| Name | Description |
|---|---|
| latest_version | 깃 태그에서 찾은 최신 버전 이름 |
| next_version | 제안된 다음 버전 이름 |
| next_version_major | 제안된 다음 버전의 주 버전 |
| next_version_minor | 제안된 다음 버전의 부 버전 |
| next_version_patch | 제안된 다음 버전의 패치 버전 |
latest_version == ''인 경우next_version의 값은1.0.0입니다.
아래 워크플로우는 메인 브랜치를 베이스로 하는 풀 리퀘스트가 병합으로 완료되면 실행됩니다.
name: 'create-tag'
on:
pull_request:
branches:
- main
types:
- closed
jobs:
get_next_version:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true # 풀 리퀘스트가 병합으로 완료된 상태를 확인
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Get next version
uses: bbonkr/next-version-proposal-action@v1
id: next_version_proposal
with:
github_token: ${{ github.token }} # 깃허브 개인 인증 토큰
pr: ${{ github.event.pull_request.number }} # 연관 풀 리퀘스트 번호
major_labels: 'major, next' # 주 버전이 증가하는 풀리퀘스트 라벨 이름 목록
minor_labels: 'enhancement, feature' # 부 버전이 증가하는 풀리퀘스트 라벨 이름 목록
patch_labels: 'bug, documentation, chore, dependencies' # 패치 버전이 증가하는 풀리퀘스트 라벨 이름 목록
next_version_prefix: 'v' # 버전 이름의 접두어를 지정
- name: logging
run: |
echo "latest_version=${{ steps.next_version_proposal.outputs.latest_version }}"
echo "next_version=${{ steps.next_version_proposal.outputs.next_version }}"
echo "next_version_major=${{ steps.next_version_proposal.outputs.next_version_major }}"
echo "next_version_minor=${{ steps.next_version_proposal.outputs.next_version_minor }}"
echo "next_version_patch=${{ steps.next_version_proposal.outputs.next_version_patch }}"
깃허브 워크플로우 중 PULL_REQUEST 이벤트에서 활용할 수 있는 액션입니다.
기본 브랜치로 병합이 지정된 풀 리퀘스트가 완료될 때, 기본 브랜치로 병합이 발생하는 경우 풀 리퀘스트의 라벨에 따라 다음 버전 이름을 제안합니다.
깃 태그 이름 중 SEMVER1 형식의 태그 이름을 검색해서, 최신 버전에 해당하는 태그 이름을 찾습니다.
SEMVER1 형식의 깃 태그를 찾을 수 없는 경우 1.0.0 을 제안합니다.
최신 버전에 해당하는 깃 태그를 찾은 경우, 지정된 풀 리퀘스트에 지정되어 있는 라벨을 기준으로 주 버전, 부 버전, 패치 버전을 1 증가 시킨 버전 이름을 제안합니다.
| Name | Required | Description |
|---|---|---|
| github_token | ✅ | 깃허브 개인 인증 토큰 (PAT); 저장소 읽기 권한이 필요합니다. |
| pr | ✅ | 풀 리퀘스트 번호; 예) 100 |
| major_labels | ✅ | 주 버전이 증가하는 풀리퀘스트 라벨 이름 목록; 쉼표로 구분 |
| minor_labels | ✅ | 부 버전이 증가하는 풀리퀘스트 라벨 이름 목록; 쉼표로 구분 |
| patch_labels | ✅ | 패치 버전이 증가하는 풀리퀘스트 라벨 이름 목록; 쉼표로 구분 |
| next_version_prefix | 다음 버전 이름 접두어 |
현재 워크플로우가 실행되고 있는 저장소에 대한 작업인 경우 github_token 에 입력할 깃허브 개인 인증 토큰의 값은 미리 정의된 변수 중 하나를 사용할 수 있습니다.
github.tokensecrets.GITHUB_TOKEN현재 워크플로우가 실행된 이벤트 트리거가 pull_request 인 경우 pr 에 입력할 풀 리퀘스트 번호의 값은 현재 컨텍스트의 이벤트 데이터를 사용할 수 있습니다.
| Name | Description |
|---|---|
| latest_version | 깃 태그에서 찾은 최신 버전 이름 |
| next_version | 제안된 다음 버전 이름 |
| next_version_major | 제안된 다음 버전의 주 버전 |
| next_version_minor | 제안된 다음 버전의 부 버전 |
| next_version_patch | 제안된 다음 버전의 패치 버전 |
latest_version == ''인 경우next_version의 값은1.0.0입니다.
아래 워크플로우는 메인 브랜치를 베이스로 하는 풀 리퀘스트가 병합으로 완료되면 실행됩니다.
name: 'create-tag'
on:
pull_request:
branches:
- main
types:
- closed
jobs:
get_next_version:
runs-on: ubuntu-latest
if: github.event.pull_request.merged == true # 풀 리퀘스트가 병합으로 완료된 상태를 확인
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Get next version
uses: bbonkr/next-version-proposal-action@v1
id: next_version_proposal
with:
github_token: ${{ github.token }} # 깃허브 개인 인증 토큰
pr: ${{ github.event.pull_request.number }} # 연관 풀 리퀘스트 번호
major_labels: 'major, next' # 주 버전이 증가하는 풀리퀘스트 라벨 이름 목록
minor_labels: 'enhancement, feature' # 부 버전이 증가하는 풀리퀘스트 라벨 이름 목록
patch_labels: 'bug, documentation, chore, dependencies' # 패치 버전이 증가하는 풀리퀘스트 라벨 이름 목록
next_version_prefix: 'v' # 버전 이름의 접두어를 지정
- name: logging
run: |
echo "latest_version=${{ steps.next_version_proposal.outputs.latest_version }}"
echo "next_version=${{ steps.next_version_proposal.outputs.next_version }}"
echo "next_version_major=${{ steps.next_version_proposal.outputs.next_version_major }}"
echo "next_version_minor=${{ steps.next_version_proposal.outputs.next_version_minor }}"
echo "next_version_patch=${{ steps.next_version_proposal.outputs.next_version_patch }}"