okaryo.log

Chrome拡張用のパッケージをGitHubActionsを使ってストアに自動アップロードする | okaryo.log

Chrome拡張用のパッケージをGitHubActionsを使ってストアに自動アップロードする

    #Chrome拡張#CI/CD#GitHubActions#GitHub

はじめに

個人開発でTabTabTabというタブ管理用のChrome拡張を開発している。

今まではリリースのたびにローカルでパッケージをビルドをしてZip化し、手動でストアにアップロードしていた。さすがに面倒なのでGitHubActionsを使って自動化することにした。

設定方法

まずChrome拡張のドキュメントを探してみると、アイテムを公開するためのAPIが存在した。

これをcurlで叩いても良いがめんどくさい。ツールがないか探したところ、以下のActionをを見つけた。

やりたいことができそうなActionだったので早速以下のワークフローを組んでみた。

name: Upload to Chrome Web Store

on:
  push:
    tags:
      - '*'

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Setup node
        uses: actions/setup-node@v4
      - name: Install npm packages
        run: npm ci
      - name: Build
        run: npm run build
      - name: Zip
        run: zip -r dist.zip dist
      - name: Upload to Chrome Web Store
        uses: mnao305/chrome-extension-upload@v5.0.0
        with:
          file-path: dist.zip
          extension-id: ${{ secrets.EXTENSION_ID }}
          client-id: ${{ secrets.CLIENT_ID }}
          client-secret: ${{ secrets.CLIENT_SECRET }}
          refresh-token: ${{ secrets.REFRESH_TOKEN }}
          publish: false

タグのプッシュをトリガーとして実行されるようにしている。また、自分の場合はdistディレクトリにビルド成果物が存在するので、それをZip化してアップロードしている。

ストアへのアップロード用のActionであるmnao305/chrome-extension-uploadの注意点として、デフォルトでアイテムのアップロード後に審査に提出するようになっている。もし実行をアップロードまでとして審査提出前にストアの掲載文や画像を変更したい場合は、publish: falseを指定する必要がある。ただし、その場合は手動で審査提出を行わなければならない。

また、client-idclient-secretrefresh-tokenの取得方法については以下のドキュメントが詳しいので参照されたい。

おわり

これでリリース時には審査の提出をするだけで良くなった。

GitHubActionsではこういった便利ツールが大体Actionとして公開されているので本当に助かっている。


関連記事
最新記事
プロモーション

This site uses Google Analytics.