Skip to content

feat: add Firefox, Opera, and Edge browser support (#26) #22

feat: add Firefox, Opera, and Edge browser support (#26)

feat: add Firefox, Opera, and Edge browser support (#26) #22

Workflow file for this run

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