Repository navigation
chore: update dependencies and enhance tab synchronization logic #42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| branches: | |
| - main | |
| concurrency: ${{ github.workflow }}-${{ github.ref }} | |
| # Allow the action to create pull requests and push to the branch | |
| permissions: | |
| pull-requests: write | |
| contents: write | |
| jobs: | |
| release: | |
| name: Release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repo | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.3 | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Setup Turbo Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: .turbo | |
| key: ${{ runner.os }}-turbo-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-turbo- | |
| - name: Authenticate with Google Cloud | |
| uses: google-github-actions/auth@v2 | |
| with: | |
| credentials_json: ${{ secrets.CHROME_SERVICE_ACCOUNT_JSON }} | |
| - name: Create Release Pull Request or Publish | |
| id: changesets | |
| uses: changesets/action@v1 | |
| with: | |
| publish: bun run release | |
| version: bun run version | |
| commit: "chore: version packages" | |
| title: "chore: version packages" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| CHROME_EXTENSION_ID: ${{ vars.CHROME_EXTENSION_ID }} | |
| CHROME_PUBLISHER_ID: ${{ vars.CHROME_PUBLISHER_ID }} | |
| FIREFOX_API_KEY: ${{ secrets.FIREFOX_API_KEY }} | |
| FIREFOX_API_SECRET: ${{ secrets.FIREFOX_API_SECRET }} | |
| FIREFOX_EXTENSION_ID: ${{ vars.FIREFOX_EXTENSION_ID }} | |
| ENABLE_FIREFOX_PUBLISHING: ${{ vars.ENABLE_FIREFOX_PUBLISHING }} | |
| - name: Add Job Summary and Notice | |
| if: steps.changesets.outputs.hasChangesets == 'false' | |
| run: | | |
| # Get the version for the release link | |
| VERSION=$(jq -r '.version' packages/extension/package.json) | |
| # Check if changesets actually published in this run | |
| # The 'published' output is 'true' if packages were published | |
| if [ "${{ steps.changesets.outputs.published }}" = "true" ]; then | |
| # New release was created in this run | |
| WAS_PUBLISHED=true | |
| else | |
| # No publishing happened (version already released) | |
| WAS_PUBLISHED=false | |
| fi | |
| if [ "$WAS_PUBLISHED" = "true" ]; then | |
| # Add notice annotation for easy visibility | |
| echo "::notice title=Upload Successful::Extension uploaded to browser stores (see logs for details)" | |
| # Add detailed job summary | |
| echo "## ✅ Extension Published" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "The extension has been uploaded to browser stores as a **draft**." >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 🏷️ GitHub Release" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "👉 [View Release v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/v${VERSION})" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "The release includes extension zip files for both **Chrome** and **Firefox**." >> $GITHUB_STEP_SUMMARY | |
| echo "Users can download and manually install the Firefox version using 'Load Temporary Add-on'." >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 📋 Next Steps: Manual Review & Publish" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "#### Chrome Web Store" >> $GITHUB_STEP_SUMMARY | |
| echo "👉 [Open Chrome Web Store Dashboard](https://chrome.google.com/webstore/devconsole/${{ vars.CHROME_PUBLISHER_ID }}/${{ vars.CHROME_EXTENSION_ID }}/edit)" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "1. Review the uploaded changes" >> $GITHUB_STEP_SUMMARY | |
| echo "2. Click **'Submit for review'**" >> $GITHUB_STEP_SUMMARY | |
| echo "3. Wait for Google's approval (usually 1-3 days)" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "#### Firefox Add-ons" >> $GITHUB_STEP_SUMMARY | |
| echo "👉 [Open Firefox Developer Hub](https://addons.mozilla.org/developers/)" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| if [ "${{ vars.ENABLE_FIREFOX_PUBLISHING }}" = "true" ]; then | |
| echo "**Status**: Published to Mozilla Add-ons for review" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "**Status**: Publishing disabled (\`ENABLE_FIREFOX_PUBLISHING\` not set to \`true\`)" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "The Firefox \`.zip\` is included in the GitHub release for manual installation." >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "To enable automated publishing:" >> $GITHUB_STEP_SUMMARY | |
| echo "1. Wait for Mozilla to approve your first submission" >> $GITHUB_STEP_SUMMARY | |
| echo "2. Set \`ENABLE_FIREFOX_PUBLISHING=true\` as a GitHub variable" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| else | |
| # Version already published - show info message | |
| echo "::notice title=Already Published::Version v${VERSION} is already released" | |
| echo "## ℹ️ Version Already Published" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "Version **v${VERSION}** is already released. No changes to publish." >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 🏷️ Existing GitHub Release" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "👉 [View Release v${VERSION}](https://github.com/${{ github.repository }}/releases/tag/v${VERSION})" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "### 📝 To Publish a New Version" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "1. Add a changeset: \`bun changeset add\`" >> $GITHUB_STEP_SUMMARY | |
| echo "2. Merge the \"Version Packages\" PR that Changesets will create" >> $GITHUB_STEP_SUMMARY | |
| echo "3. The release will be automatically published" >> $GITHUB_STEP_SUMMARY | |
| fi |