feat: add Firefox, Opera, and Edge browser support (#26) #22
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 | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| release-please: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| release_created: ${{ steps.release.outputs.release_created }} | |
| tag_name: ${{ steps.release.outputs.tag_name }} | |
| steps: | |
| - name: Release Please | |
| id: release | |
| uses: googleapis/release-please-action@v4 | |
| with: | |
| release-type: node | |
| build-release: | |
| needs: release-please | |
| if: ${{ needs.release-please.outputs.release_created }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build validation | |
| run: npm run build | |
| - name: Build all browser packages | |
| run: npm run build:all | |
| - name: Upload release assets | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ needs.release-please.outputs.tag_name }} | |
| files: dist/*.zip | |
| - name: Upload Chrome artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: chrome-extension | |
| path: dist/*-chrome.zip | |
| - name: Upload Firefox artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: firefox-extension | |
| path: dist/*-firefox.zip | |
| - name: Upload Opera artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: opera-extension | |
| path: dist/*-opera.zip | |
| - name: Upload Edge artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: edge-extension | |
| path: dist/*-edge.zip | |
| publish-to-chrome: | |
| needs: [release-please, build-release] | |
| if: ${{ needs.release-please.outputs.release_created }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build Chrome extension | |
| run: npm run build:chrome | |
| - name: Upload to Chrome Web Store | |
| uses: mnao305/chrome-extension-upload@v5.0.0 | |
| with: | |
| file-path: dist/*-chrome.zip | |
| extension-id: bgildcbomgimjfoblhlhmaehaeieeaam | |
| client-id: ${{ secrets.CHROME_CLIENT_ID }} | |
| client-secret: ${{ secrets.CHROME_CLIENT_SECRET }} | |
| refresh-token: ${{ secrets.CHROME_REFRESH_TOKEN }} | |
| publish: true | |
| glob: true | |
| publish-to-firefox: | |
| needs: [release-please, build-release] | |
| if: ${{ needs.release-please.outputs.release_created }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build Firefox extension | |
| run: npm run build:firefox | |
| - name: Upload to Firefox Add-ons | |
| uses: wdzeng/firefox-addon@v1 | |
| with: | |
| addon-guid: 'geocaching-friends-logs@rfsbraz.github.io' | |
| xpi-path: dist/*-firefox.zip | |
| jwt-issuer: ${{ secrets.AMO_JWT_ISSUER }} | |
| jwt-secret: ${{ secrets.AMO_JWT_SECRET }} | |
| publish-to-edge: | |
| needs: [release-please, build-release] | |
| if: ${{ needs.release-please.outputs.release_created }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build Edge extension | |
| run: npm run build:edge | |
| - name: Upload to Edge Add-ons | |
| uses: wdzeng/edge-addon@v2 | |
| with: | |
| product-id: ${{ secrets.EDGE_PRODUCT_ID }} | |
| client-id: ${{ secrets.EDGE_CLIENT_ID }} | |
| client-secret: ${{ secrets.EDGE_CLIENT_SECRET }} | |
| zip-path: dist/*-edge.zip |