我的 Chrome 扩展程序(我编写的扩展程序)托管在 Google Chrome 商店上。我确实创建了一个开发者帐户(5 美元一个)。
我想将我的 chrome 扩展链接到它的 github 存储库,并在每次更新代码时自动更新它,而不是手动压缩它并上传 zip 文件。有办法做到这一点吗?我在这里找不到任何东西https://developer.chrome.com/docs/webstore/publish/
有一个自托管部分,但我认为这对我的尝试没有帮助。有没有人想出从 github 到 chrome store 的自动部署?
您可以考虑使用 GitHub Action,例如 Chrome 扩展上传和发布
这样,压缩/上传过程将自动化。
示例:
uses: Klemensas/chrome-extension-upload-action@$VERSION
with:
refresh-token: 'xxxxxxxxxxxxxxxxxxxxxx'
client-id: 'xxxxxxxxxxxxx'
client-secret: ${{ secrets.CHROME_EXTENSION_SECRET }}
file-name: './extension.zip'
app-id: 'xzc12xzc21cx23'
publish: true
值设置为GitHub Secret,如所示。 在上面的示例中,我引用了一个名为“
CHROME_EXTENSION_SECRET
”的密钥,您必须首先在 GitHub 存储库中定义该密钥,该存储库包含您的扩展的源代码:
${{ secrets.CHROME_EXTENSION_SECRET }}
.github/workflows/ 目录中创建 GitHub Actions 工作流程文件。工作流程将压缩您的扩展并使用 API 上传。
在下面的示例中,您可以看到 GitHub Actions 工作流程文件的步骤:
发布-chrome-extension.yml
name: Publish Chrome Extension
on:
push:
branches:
- main # Bu, main branch'e push yapıldığında tetiklenmesini sağlar.
jobs:
build_and_publish:
runs-on: ubuntu-latest
steps:
# 1. Checkout code from repository
- name: Checkout repository
uses: actions/checkout@v3
# 2. Setup Node.js (If your extension is built with Node.js, otherwise skip this step)
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
# 3. Install dependencies (If needed, for example for React or other build tools)
- name: Install dependencies
run: |
npm install
# 4. Build the extension (optional, depends on your setup)
- name: Build extension
run: |
npm run build # Eğer bir build süreci varsa
# 5. Package the extension as a zip file
- name: Package extension
run: |
zip -r extension.zip ./dist # dist klasöründeki dosyaları zip'ler
# 6. Upload extension to Chrome Web Store (using chrome-webstore-upload-cli)
- name: Upload extension to 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 }}
run: |
npm install -g chrome-webstore-upload-cli
chrome-webstore-upload-cli --client-id $CLIENT_ID --client-secret $CLIENT_SECRET --refresh-token $REFRESH_TOKEN --extension-id your-extension-id --zip ./extension.zip