@@ -28,15 +28,39 @@ jobs:
2828 working-directory : packages/devtools-extension
2929 run : cd dist && zip -r ../extension-chrome.zip .
3030
31- - name : Upload to Chrome Web Store
32- uses : mnao305/chrome-extension-upload@4008e29e13c144d0f6725462cbd49b7c291b4928 # v5.0.0
33- with :
34- file-path : packages/devtools-extension/extension-chrome.zip
35- extension-id : ${{ secrets.CHROME_EXTENSION_ID }}
36- client-id : ${{ secrets.CHROME_CLIENT_ID }}
37- client-secret : ${{ secrets.CHROME_CLIENT_SECRET }}
38- refresh-token : ${{ secrets.CHROME_REFRESH_TOKEN }}
39- publish : true
31+ - name : Upload and publish to Chrome Web Store
32+ env :
33+ EXTENSION_ID : ${{ secrets.CHROME_EXTENSION_ID }}
34+ CLIENT_ID : ${{ secrets.CHROME_CLIENT_ID }}
35+ CLIENT_SECRET : ${{ secrets.CHROME_CLIENT_SECRET }}
36+ REFRESH_TOKEN : ${{ secrets.CHROME_REFRESH_TOKEN }}
37+ run : |
38+ # Get access token
39+ TOKEN=$(curl -s -X POST https://oauth2.googleapis.com/token \
40+ -d "client_id=$CLIENT_ID" \
41+ -d "client_secret=$CLIENT_SECRET" \
42+ -d "refresh_token=$REFRESH_TOKEN" \
43+ -d "grant_type=refresh_token" | jq -r '.access_token')
44+
45+ # Upload
46+ UPLOAD=$(curl -s \
47+ -H "Authorization: Bearer $TOKEN" \
48+ -H "x-goog-api-version: 2" \
49+ -X PUT \
50+ -T packages/devtools-extension/extension-chrome.zip \
51+ "https://www.googleapis.com/upload/chromewebstore/v1.1/items/$EXTENSION_ID")
52+ echo "Upload response: $UPLOAD"
53+ echo "$UPLOAD" | jq -e '.uploadState == "SUCCESS"' || exit 1
54+
55+ # Publish to default (public)
56+ PUBLISH=$(curl -s \
57+ -H "Authorization: Bearer $TOKEN" \
58+ -H "x-goog-api-version: 2" \
59+ -H "Content-Length: 0" \
60+ -X POST \
61+ "https://www.googleapis.com/chromewebstore/v1.1/items/$EXTENSION_ID/publish")
62+ echo "Publish response: $PUBLISH"
63+ echo "$PUBLISH" | jq -e '.status[0] == "OK"' || { echo "::error::Publish failed — see response above"; exit 1; }
4064
4165 publish-firefox :
4266 runs-on : ubuntu-latest
0 commit comments