Skip to content

Chrome Extension Release #6

Chrome Extension Release

Chrome Extension Release #6

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"