msr-mod/.gitea/workflows/workflow.yaml
Astrian Zheng 9852d7bef4
Some checks failed
构建扩展程序 / 发布至 Chrome 应用商店 (push) Has been cancelled
构建扩展程序 / 构建 Firefox 附加组件 (push) Has been cancelled
构建扩展程序 / 发布至 Firefox 附加组件库 (push) Has been cancelled
构建扩展程序 / 发布至 Edge 附加组件商店 (push) Has been cancelled
构建扩展程序 / 构建 Chrome 扩展程序 (push) Has been cancelled
构建扩展程序 / 构建 Safari 扩展程序 (push) Failing after 30s
chore: 更新 Safari 扩展的 bundle ID
- 将 bundle ID 从 com.astrian.msrmod 改为 moe.astrian.ext-msrmod
- 使用反向域名规范,更符合项目命名规范
2025-06-05 15:43:56 +10:00

203 lines
5.2 KiB
YAML

name: 构建扩展程序
on:
push:
branches: [ main, dev ]
jobs:
build-for-chrome:
name: 构建 Chrome 扩展程序
runs-on: ubuntu-latest
env:
VITE_RUN_ID: ${{ gitea.run_number }}
VITE_HASH_ID: ${{ gitea.sha }}
steps:
- uses: actions/checkout@v3
name: 检出代码
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: 安装依赖
run: npm install
- name: 构建扩展程序
run: npm run build:chrome
- name: 上传构建工件
uses: actions/upload-artifact@v3
with:
name: chrome-extension
path: dist/
build-for-firefox:
name: 构建 Firefox 附加组件
runs-on: ubuntu-latest
env:
VITE_RUN_ID: ${{ gitea.run_number }}
VITE_HASH_ID: ${{ gitea.sha }}
steps:
- uses: actions/checkout@v3
name: 检出代码
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: 安装依赖
run: npm install
- name: 构建扩展程序
run: npm run build:firefox
- name: 上传构建工件
uses: actions/upload-artifact@v3
with:
name: firefox-addon
path: dist/
build-for-safari:
name: 构建 Safari 扩展程序
runs-on: macos
env:
VITE_RUN_ID: ${{ gitea.run_number }}
VITE_HASH_ID: ${{ gitea.sha }}
steps:
- uses: actions/checkout@v3
name: 检出代码
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: 安装依赖
run: npm install
- name: 构建扩展程序
run: npm run build:safari
- name: 设置 Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: 创建 Safari 扩展项目
run: |
xcrun safari-web-extension-converter dist --project-location safari-extension --app-name "MSR Mod" --bundle-identifier "moe.astrian.ext-msrmod" --swift --no-open
- name: 构建 Safari 扩展
run: |
cd "safari-extension/MSR Mod"
xcodebuild -project "MSR Mod.xcodeproj" -scheme "MSR Mod" -configuration Release -destination "generic/platform=macOS" build
- name: 上传构建工件
uses: actions/upload-artifact@v3
with:
name: safari-extension
path: safari-extension/
publish-to-chrome-webstore:
name: 发布至 Chrome 应用商店
runs-on: ubuntu-latest
needs: build-for-chrome
# 仅在 main 分支上执行发布
if: gitea.ref == 'refs/heads/main'
steps:
- name: 下载构建工件
uses: actions/download-artifact@v3
with:
name: chrome-extension
path: dist/
- name: 压缩为 ZIP 文件
run: |-
cd dist && zip -r ../msrmod-chrome.zip . && cd ..
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: "22"
- name: 安装 Chrome Web Store 上传工具
run: |-
npm install -g chrome-webstore-upload-cli
- name: 上传扩展程序到 Chrome Web Store
run: |-
chrome-webstore-upload upload \
--source msrmod-chrome.zip \
--extension-id kphoaomopljjiofeaigjmbagmbdaamhh \
--client-id ${{ secrets.CI_GOOGLE_CLIENT_ID }} \
--client-secret ${{ secrets.CI_GOOGLE_CLIENT_SECRET }} \
--refresh-token ${{ secrets.CI_GOOGLE_REFRESH_TOKEN }}
publish-to-firefox-addons:
name: 发布至 Firefox 附加组件库
runs-on: ubuntu-latest
needs: build-for-firefox
# 仅在 main 分支上执行发布
if: gitea.ref == 'refs/heads/main'
steps:
- name: 下载构建工件
uses: actions/download-artifact@v3
with:
name: firefox-addon
path: dist/
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: "22"
- name: 安装 web-ext 工具
run: |-
npm install -g web-ext
- name: 上传附加组件到 Firefox Add-ons
run: |-
web-ext sign \
--source-dir dist \
--artifacts-dir artifacts \
--api-key ${{ secrets.FIREFOX_API_KEY }} \
--api-secret ${{ secrets.FIREFOX_API_SECRET }} \
--channel listed
publish-to-edge-addons:
name: 发布至 Edge 附加组件商店
runs-on: ubuntu-latest
needs: build-for-chrome
# 仅在 main 分支上执行发布
if: gitea.ref == 'refs/heads/main'
steps:
- name: 下载构建工件
uses: actions/download-artifact@v3
with:
name: chrome-extension
path: dist/
- name: 压缩为 ZIP 文件
run: |-
cd dist && zip -r ../msrmod-edge.zip . && cd ..
- name: 设置 Node.js
uses: actions/setup-node@v3
with:
node-version: "22"
- name: 上传扩展程序到 Edge Addons
uses: wdzeng/edge-addon@v2
with:
product-id: d63fd5c5-baba-4fcb-95c8-f11c161f9878
zip-path: msrmod-edge.zip
api-key: ${{ secrets.EDGE_CLIENT_SECRET }}
client-id: ${{ secrets.EDGE_CLIENT_ID }}