👍
Chrome拡張をGitHub Actionsで自動デプロイ
先日、EZTMというChrome拡張をリリースしました✨
今後のアップデート時の作業を効率化するためにGitHub Actionsを使って自動でデプロイを行えるようにしてみました!前提
- 既にChrome Web Storeに公開済みであること
つくったワークフロー
ワークフローのコードは以下です。
.github/workflows/cd.yml
name: Deploy to Chrome web store
on:
push:
tags:
- "v*.*.*"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build
run: |
npm ci
npm run build
- name: Zip dist
uses: montudor/action-zip@v1
with:
args: zip -qq -r release.zip dist
- name: Upload to Chrome Web Store
uses: mobilefirstllc/cws-publish@latest
with:
action: 'upload' # one of: upload, publish, testers
client_id: ${{ secrets.CLIENT }}
client_secret: ${{ secrets.SECRET }}
refresh_token: ${{ secrets.TOKEN }}
extension_id: 'pilidjngjpaijlblpfdncckldgecngak'
zip_file: 'release.zip'
何をしているか
-
v1.0.0
のようなバージョンタグがpushされた時をトリガーにしています
on:
push:
tags:
- "v*.*.*"
- ソースコードからChrome拡張のzipファイルを作成します
- name: Checkout
uses: actions/checkout@v2
- name: Build
run: |
npm ci
npm run build
- name: Zip dist
uses: montudor/action-zip@v1
with:
args: zip -qq -r release.zip dist
- mobilefirstllc/cws-publishを使用して、Chrome Web Storeに2.で作成したzipファイルをアップロードします
- name: Upload to Chrome Web Store
uses: mobilefirstllc/cws-publish@latest
with:
action: 'upload' # one of: upload, publish, testers
client_id: ${{ secrets.CLIENT }}
client_secret: ${{ secrets.SECRET }}
refresh_token: ${{ secrets.TOKEN }}
extension_id: 'pilidjngjpaijlblpfdncckldgecngak'
zip_file: 'release.zip'
action
について(公式のReadmeの翻訳)
Action | Description |
---|---|
upload |
zipファイルをデベロッパーコンソールにアップロードするだけ。手動で公開する必要がある。 |
publish |
zipファイルをデベロッパーコンソールにアップロードし、自動で公開まで行う。 |
testers |
zipをアップロードし、テスターへの公開をリクエストする(公開された拡張機能は利用不可)。 |
今回は、なんとなくupload
を選びました。
client_id
,client_secret
,refresh_token
について
Google APIの認証情報を用意して入力します。
こちらにやり方が書いてあります。
Google APIの用意は、今回初めてでしたが割と簡単にできました!
extension_id
について
コンソールから
該当の拡張機能の詳細ページにいくと確認できます。
zip_file
について
アップロードするzipファイルのパスです。
今回はリポジトリのルートにzipファイルを作成しているので、'release.zip'
としました。
おわりに
今回のワークフローを設定した拡張機能(EZTM)のリポジトリはソースコードを公開しています👍
そして、EZTMのストアページは以下です。よかったら使ってみてください!✨
参考
既に以下の記事でもGitHub Actionsを使って自動でデプロイのやり方が紹介されていましたが、
自分のやり方と少し違ったので記事を作成しました。
Discussion