read-frog/.github/workflows/submit.yml

67 lines
2 KiB
YAML

name: Submit to Stores
on:
workflow_dispatch:
inputs:
tag:
description: "Release tag to submit (e.g., v1.20.0)"
required: true
type: string
dryRun:
description: Dry run (skip actual submission)
required: false
default: false
type: boolean
env:
WXT_GOOGLE_CLIENT_ID: ${{ secrets.WXT_GOOGLE_CLIENT_ID || vars.WXT_GOOGLE_CLIENT_ID }}
WXT_POSTHOG_API_KEY: ${{ secrets.WXT_POSTHOG_API_KEY || vars.WXT_POSTHOG_API_KEY }}
WXT_POSTHOG_HOST: ${{ secrets.WXT_POSTHOG_HOST || vars.WXT_POSTHOG_HOST }}
jobs:
submit:
name: Submit to Stores
runs-on: ubuntu-latest
steps:
- name: Checkout Release Tag
uses: actions/checkout@v6
with:
ref: ${{ inputs.tag }}
- name: Setup pnpm
uses: pnpm/action-setup@v5
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: "24"
cache: pnpm
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Run Tests
run: pnpm test --exclude="**/free-api.test.ts"
- name: Build and Zip Extension
run: pnpm zip
- name: Upload Extension Zip to Release
run: gh release upload "${{ inputs.tag }}" .output/*-chrome.zip --clobber
env:
GH_TOKEN: ${{ github.token }}
- name: Submit to Chrome & Edge Stores
run: |
pnpm wxt submit \
--chrome-zip .output/*-chrome.zip \
--edge-zip .output/*-chrome.zip
env:
DRY_RUN: ${{ inputs.dryRun }}
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 }}
EDGE_PRODUCT_ID: ${{ secrets.EDGE_PRODUCT_ID }}
EDGE_CLIENT_ID: ${{ secrets.EDGE_CLIENT_ID }}
EDGE_API_KEY: ${{ secrets.EDGE_API_KEY }}