Files
AIPex/.github/workflows/submit.yml
2025-09-12 00:02:21 +08:00

92 lines
2.8 KiB
YAML

name: "Submit to Web Store"
on:
workflow_dispatch:
inputs:
publish:
description: 'Publish to web store (true/false)'
required: false
default: 'true'
type: choice
options:
- 'true'
- 'false'
push:
tags:
- 'v*' # 当推送版本标签时自动触发
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Cache pnpm modules
uses: actions/cache@v3
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- uses: pnpm/action-setup@v4
with:
version: 8
run_install: true
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
cache: "pnpm"
- name: Build the extension
run: pnpm build
env:
# AI 配置环境变量(可选)
AI_HOST: ${{ secrets.AI_HOST }}
AI_MODEL: ${{ secrets.AI_MODEL }}
AI_TOKEN: ${{ secrets.AI_TOKEN }}
- name: Package the extension into a zip artifact
run: pnpm package
- name: Upload package artifacts
uses: actions/upload-artifact@v4
with:
name: extension-package
path: build/
retention-days: 30
- name: Auto-increment version
run: |
# 获取当前版本号
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo "Current version: $CURRENT_VERSION"
# 自动递增补丁版本号
NEW_VERSION=$(node -p "
const version = '$CURRENT_VERSION';
const parts = version.split('.');
parts[2] = (parseInt(parts[2]) + 1).toString();
parts.join('.')
")
echo "New version: $NEW_VERSION"
# 更新 package.json 中的版本号
npm version $NEW_VERSION --no-git-tag-version
echo "Updated version to: $NEW_VERSION"
- name: Publish to GitHub Packages
run: |
echo "@aipexstudio:registry=https://npm.pkg.github.com" >> ~/.npmrc
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> ~/.npmrc
pnpm publish:extension
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Browser Platform Publish
if: ${{ github.event.inputs.publish != 'false' }}
uses: PlasmoHQ/bpp@v3
with:
keys: ${{ secrets.SUBMIT_KEYS }}
artifact: build/chrome-mv3-prod.zip
# 可选:指定要发布的浏览器
# browsers: firefox,edge