name: publish on: push: tags: - v* workflow_dispatch: inputs: dry_run: type: boolean description: Dry run default: true permissions: contents: write jobs: publish: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v5 - name: Setup node uses: actions/setup-node@v6 with: node-version: 22 cache: 'npm' - name: Install dependencies run: npm ci - name: Zip extensions run: | npm run zip:firefox npm run zip - name: Resolve zip extension paths id: paths run: | MV2_PATH=$(find .output -type f -name "*-mv2.zip") MV2_NAME=$(basename $MV2_PATH) MV3_PATH=$(find .output -type f -name "*-mv3.zip") MV3_NAME=$(basename $MV3_PATH) echo "mv2_path=$MV2_PATH" >> "$GITHUB_OUTPUT" echo "mv2_name=$MV2_NAME" >> "$GITHUB_OUTPUT" echo "mv3_path=$MV3_PATH" >> "$GITHUB_OUTPUT" echo "mv3_name=$MV3_NAME" >> "$GITHUB_OUTPUT" - name: Upload mv2 as artifact uses: actions/upload-artifact@v5 with: name: ${{ steps.paths.outputs.mv2_name }} path: ${{ steps.paths.outputs.mv2_path }} - name: Upload mv3 as artifact uses: actions/upload-artifact@v5 with: name: ${{ steps.paths.outputs.mv3_name }} path: ${{ steps.paths.outputs.mv3_path }} - name: Upload to latest release if: github.event.inputs.dry_run != 'true' uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: .output/*mv*.zip tag: ${{ github.ref }} overwrite: true file_glob: true - name: Submit to stores env: DRY_RUN: ${{ github.event.inputs.dry_run }} FIREFOX_EXTENSION_ID: ${{ secrets.FIREFOX_EXTENSION_ID }} FIREFOX_JWT_ISSUER: ${{ secrets.FIREFOX_JWT_ISSUER }} FIREFOX_JWT_SECRET: ${{ secrets.FIREFOX_JWT_SECRET }} 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 }} run: | npx wxt submit \ --firefox-zip .output/*-mv2.zip --firefox-sources-zip .output/*-sources.zip \ --chrome-zip .output/*-mv3.zip