Skip to content

Release

Release #13

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
bump_type:
description: 'v[major].[minor].[patch]'
required: true
type: choice
default: 'patch'
options:
- major
- minor
- patch
submit_chrome:
description: 'Chrome Web Store'
type: boolean
default: true
jobs:
submit:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
defaults:
run:
working-directory: ./packages/extension
steps:
- uses: actions/checkout@v4
- name: pnpmをインストール
uses: pnpm/action-setup@v4
with:
version: 9
run_install: false
- name: Node.jsをインストール
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: 依存関係をインストール
run: pnpm install
- name: Gitのユーザーを設定
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: バージョンを更新
run: |
pnpm version ${{ github.event.inputs.bump_type }}
echo VERSION="v$(cat ./package.json | jq -r '.version')" >> "${GITHUB_ENV}"
- name: 拡張機能をビルド
run: pnpm zip
env:
WXT_PARTYKIT_HOST: ${{ secrets.WXT_PARTYKIT_HOST }}
WXT_PARTYKIT_HOST_SHORT: ${{ secrets.WXT_PARTYKIT_HOST_SHORT }}
WXT_CLERK_FRONTEND_API: ${{ secrets.WXT_CLERK_FRONTEND_API }}
WXT_CLERK_PUBLISHABLE_KEY: ${{ secrets.WXT_CLERK_PUBLISHABLE_KEY }}
WXT_CRX_PUBLIC_KEY: ${{ secrets.WXT_CRX_PUBLIC_KEY }}
- name: リポジトリへプッシュ
working-directory: ./
run: |
git add ./packages/extension/package.json
git commit -m "${VERSION}"
git tag "${VERSION}"
git push
git push --tags
- name: GitHubへリリース
working-directory: ./
run: |
gh release create "${VERSION}" \
./packages/extension/dist/*-chrome.zip \
-t "$(cat ./packages/extension/package.json | jq -r '.displayName') ${VERSION}"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Chrome Web Storeへ提出
if: ${{ github.event.inputs.submit_chrome == 'true' }}
run: |
pnpm wxt submit \
--chrome-zip ./dist/*-chrome.zip
env:
CHROME_EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }}
CHROME_CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
CHROME_CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
CHROME_REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}