mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-05-10 17:43:40 +08:00
把 CONTRIBUTING.md 里写的规范落到 GitHub 工程化层。
Issue / PR 模板:
- .github/ISSUE_TEMPLATE/{config,bug_report,feature_request}.yml
· yml 表单形式,跟随当前工作区分类(backend / frontend / extension / Tauri)
· bug_report 强制选版本 + 部署方式 + 复现步骤;提交前自查不夹带 secrets
· config.yml 禁用空白 issue,引导 Discussions
- .github/pull_request_template.md:把 CONTRIBUTING §5.2 的 PR 正文要求落成 checklist
- 删旧版 .md 模板(含中文文件名那条),避免新老两套并存
Commitlint:
- .commitlintrc.json:extend conventional + 自定义 type 白名单(feat/fix/docs/style/refactor/perf/test/build/ci/chore/ui/revert)
- .github/workflows/commitlint.yml:用 wagoid/commitlint-github-action@v6,PR + push develop/master 时校验
· subject-case / subject-full-stop 关掉,兼容中文 subject
· header-max-length 100 字符 warn 级别,不阻塞合并
插件发版工作流:
- .github/workflows/release-extension.yml:v* tag push 时
· cd BillNote_extension && pnpm install + build
· pack:zip / pack:xpi / pack:crx(crx 缺 key 自动跳过)
· 产物重命名带版本后缀,挂到对应 GitHub Release
- 末尾保留 publish-chrome / publish-edge / publish-firefox 三段注释,配齐 secrets 即可启用商店自动发布
- RELEASING.md:发版执行手册,覆盖 release/* 流程 + 各商店人工上传步骤 + 自动发布所需 secrets
CONTRIBUTING.md 关联文档区指到新增的 RELEASING.md,commit 章节加 commitlint 落地说明。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
116 lines
3.7 KiB
YAML
116 lines
3.7 KiB
YAML
name: Release Extension
|
||
|
||
# 在 v* tag push 时触发,构建插件并把产物挂到对应 GitHub Release。
|
||
# 商店上传仍走人工(详见 RELEASING.md);如果将来配齐了商店 API secrets,
|
||
# 把本文件末尾注释的 publish-* job 解开就是自动发布。
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- 'v*'
|
||
|
||
permissions:
|
||
contents: write
|
||
|
||
jobs:
|
||
build:
|
||
name: Build & attach to release
|
||
runs-on: ubuntu-latest
|
||
defaults:
|
||
run:
|
||
working-directory: BillNote_extension
|
||
steps:
|
||
- name: Checkout
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Setup pnpm
|
||
uses: pnpm/action-setup@v3
|
||
with:
|
||
version: 9
|
||
|
||
- name: Setup Node
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: 20
|
||
cache: pnpm
|
||
cache-dependency-path: BillNote_extension/pnpm-lock.yaml
|
||
|
||
- name: Install
|
||
run: pnpm install --frozen-lockfile
|
||
|
||
- name: Build
|
||
run: pnpm build
|
||
|
||
- name: Pack zip (Chrome / Edge upload format)
|
||
run: pnpm pack:zip
|
||
|
||
- name: Pack xpi (Firefox Add-ons)
|
||
run: pnpm pack:xpi
|
||
|
||
- name: Pack crx (self-host sideload)
|
||
# crx 需要稳定 key.pem 才能保持插件 ID 不变;CI 没有就跳过,不阻塞主流程。
|
||
# 想生成稳定 crx:把 key 存到 secret EXTENSION_CRX_KEY,下面解开几行。
|
||
run: |
|
||
# if [ -n "${{ secrets.EXTENSION_CRX_KEY }}" ]; then
|
||
# echo "${{ secrets.EXTENSION_CRX_KEY }}" > key.pem
|
||
# pnpm pack:crx
|
||
# else
|
||
pnpm pack:crx || true
|
||
# fi
|
||
continue-on-error: true
|
||
|
||
- name: Rename artifacts with version suffix
|
||
run: |
|
||
VERSION="${GITHUB_REF#refs/tags/v}"
|
||
[ -f extension.zip ] && mv extension.zip "bilinote-extension-${VERSION}.zip"
|
||
[ -f extension.xpi ] && mv extension.xpi "bilinote-extension-${VERSION}.xpi"
|
||
[ -f extension.crx ] && mv extension.crx "bilinote-extension-${VERSION}.crx"
|
||
ls -la *.zip *.xpi *.crx 2>/dev/null || true
|
||
|
||
- name: Attach to GitHub Release
|
||
uses: softprops/action-gh-release@v2
|
||
with:
|
||
files: |
|
||
BillNote_extension/bilinote-extension-*.zip
|
||
BillNote_extension/bilinote-extension-*.xpi
|
||
BillNote_extension/bilinote-extension-*.crx
|
||
fail_on_unmatched_files: false
|
||
generate_release_notes: false
|
||
|
||
# ---------- 商店自动发布(默认禁用,配齐 secrets 后可启用) ----------
|
||
#
|
||
# publish-chrome:
|
||
# needs: build
|
||
# runs-on: ubuntu-latest
|
||
# steps:
|
||
# - uses: actions/download-artifact@v4
|
||
# - uses: mnao305/chrome-extension-upload@v5
|
||
# with:
|
||
# file-path: BillNote_extension/bilinote-extension-${{ github.ref_name }}.zip
|
||
# extension-id: ${{ secrets.CHROME_EXTENSION_ID }}
|
||
# client-id: ${{ secrets.CHROME_CLIENT_ID }}
|
||
# client-secret: ${{ secrets.CHROME_CLIENT_SECRET }}
|
||
# refresh-token: ${{ secrets.CHROME_REFRESH_TOKEN }}
|
||
#
|
||
# publish-edge:
|
||
# needs: build
|
||
# runs-on: ubuntu-latest
|
||
# steps:
|
||
# - uses: wdzeng/edge-addon@v2
|
||
# with:
|
||
# product-id: ${{ secrets.EDGE_PRODUCT_ID }}
|
||
# zip-path: BillNote_extension/bilinote-extension-${{ github.ref_name }}.zip
|
||
# client-id: ${{ secrets.EDGE_CLIENT_ID }}
|
||
# api-key: ${{ secrets.EDGE_API_KEY }}
|
||
#
|
||
# publish-firefox:
|
||
# needs: build
|
||
# runs-on: ubuntu-latest
|
||
# steps:
|
||
# - uses: trmcnvn/firefox-addon@v3
|
||
# with:
|
||
# uuid: ${{ secrets.FIREFOX_ADDON_UUID }}
|
||
# xpi: BillNote_extension/bilinote-extension-${{ github.ref_name }}.xpi
|
||
# api-key: ${{ secrets.FIREFOX_API_KEY }}
|
||
# api-secret: ${{ secrets.FIREFOX_API_SECRET }}
|