发布
WXT 可以将扩展包打包并提交到各应用商店供审核或自定义发布。
第一次发布
如果你第一次向商店提交扩展,请必须手动进行此过程。WXT 不帮助你创建条目,每个商店都有独特的步骤和要求,你需要熟悉这些内容。
有关特定商店的详细信息,请参阅以下部分。
自动化
WXT 提供两个命令来帮助自动化提交新版本并发布:
wxt submit init
:设置所有必要的秘密和选项,用于wxt submit
命令wxt submit
:提交新的扩展包供审核(一旦通过审核后自动发布)
要开始,请运行 wxt submit init
并按照提示完成。完成后你应该有一个 .env.submit
文件!WXT 会使用此文件来提交更新。
在 CI 中,确保你将所有环境变量添加到提交步骤中。
要提交新的版本以进行发布,构建所有你计划发布的 ZIP 包:
sh
wxt zip
wxt zip -b firefox
然后运行 wxt submit
命令,通过所有 ZIP 文件传递给你想要发布的更新。在这种情况下,我们将为所有三个主要商店(Chrome Web Store、Edge Addons 和 Firefox Addon Store)发布一次新的版本。
如果你第一次运行该命令或最近更改了发布流程,请通过 --dry-run
选项测试你的秘密。
sh
wxt submit --dry-run \
--chrome-zip .output/{your-extension}-{version}-chrome.zip \
--firefox-zip .output/{your-extension}-{version}-firefox.zip --firefox-sources-zip .output/{your-extension}-{version}-sources.zip \
--edge-zip .output/{your-extension}-{version}-chrome.zip
如果 dry run 通过,移除标志并进行实际发布:
sh
wxt submit \
--chrome-zip .output/{your-extension}-{version}-chrome.zip \
--firefox-zip .output/{your-extension}-{version}-firefox.zip --firefox-sources-zip .output/{your-extension}-{version}-sources.zip \
--edge-zip .output/{your-extension}-{version}-chrome.zip
WARNING
请参阅 Firefox Addon Store 部分,了解 --firefox-sources-zip
选项的更多细节。
GitHub Action
以下是一个提交新版本供审核的 GitHub 动作示例。确保你已将所有需要使用的秘密添加到仓库设置中。
yml
name: Release
on:
workflow_dispatch:
jobs:
submit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: 安装依赖项
run: pnpm install
- name: 包括扩展包
run: |
pnpm zip
pnpm zip:firefox
- name: 提交到商店
run: |
pnpm wxt submit \
--chrome-zip .output/*-chrome.zip \
--firefox-zip .output/*-firefox.zip --firefox-sources-zip .output/*-sources.zip
env:
CHROME_EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }}
CHROME_CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
CHROME_CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
CHROME_REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}
FIREFOX_EXTENSION_ID: ${{ secrets.FIREFOX_EXTENSION_ID }}
FIREFOX_JWT_ISSUER: ${{ secrets.FIREFOX_JWT_ISSUER }}
FIREFOX_JWT_SECRET: ${{ secrets.FIREFOX_JWT_SECRET }}
上述动作构建了基础工作流程,包括 zip
和 submit
步骤。要增强 GitHub 动作并深入探索更复杂的场景,请参考以下实际项目中的示例。它们引入了高级功能,如版本管理、发布说明生成和 GitHub 发布,适用于不同的需求:
aklinker1/github-better-line-counts
- 自动化版本提升和发布说明的生成,默认触发,可选 dry run 用于测试GuiEpi/plex-skipper
- 当package.json
的版本发生变化时自动触发,创建并上传到 GitHub 的发布 artifacts