Files
edgeever/.github/workflows/extension-store.yml
T
tianma-if c58fe81a13 feat(extension): add a manual Web Clipper store submission workflow
Chrome and Firefox uploads were done by hand. Submit Web Clipper now packages the extension and sends it for review without joining the product release.
2026-10-02 00:29:10 +08:00

84 lines
2.7 KiB
YAML

name: Submit Web Clipper
on:
workflow_dispatch:
inputs:
platform:
description: "Store to submit. Chrome also covers the Edge install link."
required: true
default: both
type: choice
options:
- both
- chrome
- firefox
release_notes:
description: "Firefox release notes. Leave empty for a one-line version note."
required: false
default: ""
type: string
dry_run:
description: "Build the packages without calling the stores"
required: true
default: false
type: boolean
permissions:
contents: read
concurrency:
group: edgeever-web-clipper-store
cancel-in-progress: false
jobs:
submit:
if: github.repository == 'tianma-if/edgeever'
name: Submit Chrome and Firefox
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Write release notes
env:
RELEASE_NOTES: ${{ inputs.release_notes }}
run: printf '%s' "$RELEASE_NOTES" > "$RUNNER_TEMP/web-clipper-release-notes.txt"
- name: Submit stores
id: submit
env:
PLATFORM: ${{ inputs.platform }}
DRY_RUN: ${{ inputs.dry_run }}
CHROME_WEB_STORE_SERVICE_ACCOUNT_JSON: ${{ secrets.CHROME_WEB_STORE_SERVICE_ACCOUNT_JSON }}
CHROME_WEB_STORE_CLIENT_ID: ${{ secrets.CHROME_WEB_STORE_CLIENT_ID }}
CHROME_WEB_STORE_CLIENT_SECRET: ${{ secrets.CHROME_WEB_STORE_CLIENT_SECRET }}
CHROME_WEB_STORE_REFRESH_TOKEN: ${{ secrets.CHROME_WEB_STORE_REFRESH_TOKEN }}
AMO_JWT_ISSUER: ${{ secrets.AMO_JWT_ISSUER }}
AMO_JWT_SECRET: ${{ secrets.AMO_JWT_SECRET }}
EDGE_EVER_REVIEW_INSTANCE_URL: ${{ secrets.EDGE_EVER_REVIEW_INSTANCE_URL }}
EDGE_EVER_REVIEW_API_TOKEN: ${{ secrets.EDGE_EVER_REVIEW_API_TOKEN }}
run: |
args=(--platform "$PLATFORM" --notes-file "$RUNNER_TEMP/web-clipper-release-notes.txt")
if [[ "$DRY_RUN" == "true" ]]; then
args+=(--dry-run)
fi
bun scripts/publish-web-clipper.mjs "${args[@]}"
- name: Upload submission packages
if: always() && steps.submit.outputs.version != ''
uses: actions/upload-artifact@v4
with:
name: web-clipper-${{ steps.submit.outputs.version }}
if-no-files-found: warn
path: |
${{ steps.submit.outputs.chromium_zip }}
${{ steps.submit.outputs.firefox_zip }}
${{ steps.submit.outputs.source_zip }}