Feature/#207 split stores #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update version | |
on: | |
pull_request: | |
branches: | |
- main | |
types: | |
- labeled | |
workflow_dispatch: | |
jobs: | |
check_release_label: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.pull_request.head.ref }} | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
- run: | | |
git config user.name "github-actions[bot]" | |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 9.0.5 | |
run_install: false | |
# 前回のリリースタグを取得する | |
- name: Get previous tag | |
id: pre_tag | |
run: | | |
pre_tag=$(curl -H 'Accept: application/vnd.github.v3+json' -H 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r .tag_name) | |
version=${pre_tag#v} | |
versions=(${version//-/ }) | |
version_pre=${versions[1]} | |
versions=(${versions[0]//./ }) | |
echo major=${versions[0]} >> $GITHUB_OUTPUT | |
echo minor=${versions[1]} >> $GITHUB_OUTPUT | |
echo patch=${versions[2]} >> $GITHUB_OUTPUT | |
echo preview=$version_pre >> $GITHUB_OUTPUT | |
# タグを取得する | |
- name: Get version | |
id: get-version | |
uses: beaconbrigade/[email protected] | |
with: | |
path: . | |
- name: Generate release tag | |
id: release_tag | |
run: | | |
version=${{ steps.get-version.outputs.version }} | |
versions=(${version//-/ }) | |
version_pre=${versions[1]} | |
versions=(${versions[0]//./ }) | |
echo major=${versions[0]} >> $GITHUB_OUTPUT | |
echo minor=${versions[1]} >> $GITHUB_OUTPUT | |
echo patch=${versions[2]} >> $GITHUB_OUTPUT | |
echo preview=$version_pre >> $GITHUB_OUTPUT | |
# 最新のバージョンとブランチ内のバージョンに差異があったら処理を止める | |
- name: Check if it is the first execution | |
if: | | |
!contains(steps.pre_tag.outputs.major, steps.release_tag.outputs.major) || | |
!contains(steps.pre_tag.outputs.minor, steps.release_tag.outputs.minor) || | |
!contains(steps.pre_tag.outputs.patch, steps.release_tag.outputs.patch) || | |
!contains(steps.pre_tag.outputs.preview, steps.release_tag.outputs.preview) | |
run: | | |
echo "Error: Version changes detected. Exiting." | |
exit 1 | |
- name: Update patch version | |
id: patch | |
if: | | |
contains(github.event.pull_request.labels.*.name, 'release:patch') && | |
!contains(github.event.pull_request.labels.*.name, 'release:minor') && | |
!contains(github.event.pull_request.labels.*.name, 'release:major') | |
run: | | |
pnpm version patch | |
git push | |
- name: Update minor version | |
id: minor | |
if: | | |
!contains(github.event.pull_request.labels.*.name, 'release:patch') && | |
contains(github.event.pull_request.labels.*.name, 'release:minor') && | |
!contains(github.event.pull_request.labels.*.name, 'release:major') | |
run: | | |
pnpm version minor | |
git push | |
- name: Update major version | |
id: major | |
if: | | |
!contains(github.event.pull_request.labels.*.name, 'release:patch') && | |
!contains(github.event.pull_request.labels.*.name, 'release:minor') && | |
contains(github.event.pull_request.labels.*.name, 'release:major') | |
run: | | |
pnpm version major | |
git push |