Skip to content

SEO対策を実施した #17

SEO対策を実施した

SEO対策を実施した #17

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