Chrome Extension Release #6
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: Chrome Extension Release | |
on: | |
workflow_dispatch: | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
steps: | |
# リポジトリをチェックアウト | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# 拡張機能をzip化 | |
- name: Step1. 拡張機能をzip化する | |
run: | | |
echo "リポジトリを圧縮中..." | |
zip -r chrome_extension.zip . -x "*.git*" | |
# Chrome Web Store APIを使ってアップロード | |
- name: Step2. Chrome Web Store にZIPファイルをアップロード | |
env: | |
CLIENT_ID: ${{ secrets.CHROME_WEBSTORE_CLIENT_ID }} | |
CLIENT_SECRET: ${{ secrets.CHROME_WEBSTORE_CLIENT_SECRET }} | |
REFRESH_TOKEN: ${{ secrets.CHROME_WEBSTORE_REFRESH_TOKEN }} | |
EXTENSION_ID: ${{ secrets.EXTENSION_ID }} | |
run: | | |
# Google APIの認証を取得 | |
echo "アクセストークンを取得中..." | |
ACCESS_TOKEN=$(curl -s -X POST "https://oauth2.googleapis.com/token" \ | |
-d "client_id=${CLIENT_ID}" \ | |
-d "client_secret=${CLIENT_SECRET}" \ | |
-d "refresh_token=${REFRESH_TOKEN}" \ | |
-d "grant_type=refresh_token" | jq -r '.access_token') | |
# 拡張機能をアップロード | |
echo "サーバーに拡張機能をアップロード中..." | |
curl -X POST "https://www.googleapis.com/upload/chromewebstore/v1.1/items/${EXTENSION_ID}/?uploadType=media" \ | |
-H "Authorization: Bearer $ACCESS_TOKEN" \ | |
-F "file=@chrome_extension.zip" | |
# Chrome Web Storeで公開 | |
- name: Step3. Chrome Web Store に公開! | |
env: | |
CLIENT_ID: ${{ secrets.CHROME_WEBSTORE_CLIENT_ID }} | |
CLIENT_SECRET: ${{ secrets.CHROME_WEBSTORE_CLIENT_SECRET }} | |
REFRESH_TOKEN: ${{ secrets.CHROME_WEBSTORE_REFRESH_TOKEN }} | |
EXTENSION_ID: ${{ secrets.EXTENSION_ID }} | |
run: | | |
# Google APIの認証を取得 | |
echo "アクセストークンを取得中..." | |
ACCESS_TOKEN=$(curl -s -X POST "https://oauth2.googleapis.com/token" \ | |
-d "client_id=${CLIENT_ID}" \ | |
-d "client_secret=${CLIENT_SECRET}" \ | |
-d "refresh_token=${REFRESH_TOKEN}" \ | |
-d "grant_type=refresh_token" | jq -r '.access_token') | |
# Chrome Web Storeで公開 | |
echo "公開の最終処理を実行しています..." | |
curl -X POST "https://www.googleapis.com/chromewebstore/v1.1/items/${EXTENSION_ID}/publish" \ | |
-H "Authorization: Bearer $ACCESS_TOKEN" |