Skip to content

👷 build(lib): Release v1.0.7 #9

👷 build(lib): Release v1.0.7

👷 build(lib): Release v1.0.7 #9

Workflow file for this run

###############################################################################
# PLBLISH CHROME EXTENSION AND FIREFOX EXTENSION
###############################################################################
name: Publish
###############################################################################
# ON
###############################################################################
on:
push:
tags:
- '*'
workflow_dispatch:
inputs:
version:
description: 'Set number for release version'
type: string
required: true
###############################################################################
# JOBS
###############################################################################
jobs:
build:
name: Publish web extensions and release in Github
# for the Safari build. If set to 'macos-13-xlarge' or 'macos-latest' safari build it will not be compatible with macos Intel processor
# @see https://github.com/actions/runner-images?tab=readme-ov-file#available-images
runs-on: macos-13
permissions:
contents: write
###########################################################################
# STEPS
###########################################################################
steps:
#########################################################################
# INIT
#########################################################################
- name: ⬇️🛑 Cancel Previous Runs
uses: styfle/[email protected]
- name: ⬇️🛎 Checkout
uses: actions/checkout@v4
- name: ⬇️🥡 Install pnpm
uses: pnpm/action-setup@v4
- name: ⬇️🟢 Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: ⬇️📦 Install dependencies
run: |
pnpm install --no-frozen-lockfile
#########################################################################
# BUILD PKG
#########################################################################
- name: 🏗 Build
run: pnpm build
- name: 🏗 Rebuild bepp
uses: pigeonposse/[email protected]
with:
file: ./bepp.config.yml
#########################################################################
# GET PKG INFO
#########################################################################
- name: 📦📄 Get package.json data
id: pkg
run: |
echo "description=$(jq -r '.description' ./package.json)" >> $GITHUB_OUTPUT
echo "name=$(jq -r '.name' ./package.json)" >> $GITHUB_OUTPUT
echo "version=$(jq -r '.version' ./package.json)" >> $GITHUB_OUTPUT
echo "firefox_store_id=$(jq -r '.extra.releases.firefox.storeId' ./package.json)" >> $GITHUB_OUTPUT
echo "chrome_store_id=$(jq -r '.extra.releases.chrome.storeId' ./package.json)" >> $GITHUB_OUTPUT
echo "edge_store_id=$(jq -r '.extra.releases.edge.storeId' ./package.json)" >> $GITHUB_OUTPUT
#########################################################################
# GITHUB RELEASE
#########################################################################
- name: 🧩🗂️ Create Github release
uses: ncipollo/release-action@v1
with:
tag: "${{ steps.pkg.outputs.version }}"
name: '${{ steps.pkg.outputs.version }}'
draft: false
prerelease: false
allowUpdates: true
artifacts: "dist/exts/*"
body: |
<p><b> ${{ steps.pkg.outputs.name }} v${{ steps.pkg.outputs.version }}</b></p>
<p>${{ steps.pkg.outputs.description }}</p>
🧩 [CHANGELOG]( https://github.com/pigeonposse/${{ steps.pkg.outputs.name }}/blob/main/CHANGELOG.md)
📜 [LICENSE](https://github.com/pigeonposse/${{ steps.pkg.outputs.name }}/blob/main/LICENSE)
🔏 [PRIVACY](https://github.com/pigeonposse/${{ steps.pkg.outputs.name }}/blob/main/POLICY.md)
#########################################################################
# PUBLISH IN FIREFOX WEB STORE
#########################################################################
- name: 🧩🦊 Upload FIREFOX extension
uses: trmcnvn/firefox-addon@v1
with:
uuid: ${{ steps.pkg.outputs.firefox_store_id }}
xpi: dist/comp/firefox-${{ steps.pkg.outputs.name }}-${{ steps.pkg.outputs.version }}.zip
manifest: dist/firefox/manifest.json
api-key: ${{ secrets.FIREFOX_API_KEY }}
api-secret: ${{ secrets.FIREFOX_API_SECRET }}
continue-on-error: true
#########################################################################
# PUBLISH IN CHROME WEB STORE
#########################################################################
- name: 🧩 Upload CHROME extension
uses: wdzeng/[email protected]
with:
refresh-token: '${{ secrets.CHOME_EXTENSION_REFRESH_TOKEN }}'
client-id: '${{ secrets.CHOME_EXTENSION_CLIENT_ID }}'
client-secret: '${{ secrets.CHOME_EXTENSION_CLIENT_SECRET }}'
zip-path: dist/exts/${{ steps.pkg.outputs.name }}-chrome.zip
extension-id: '${{steps.pkg.outputs.chrome_store_id}}'
continue-on-error: true
#########################################################################
# PUBLISH IN EDGE WEB STORE
#########################################################################
- name: 🧩 Upload EDGE extension
uses: wdzeng/[email protected]
with:
product-id: ${{ steps.pkg.outputs.edge_store_id }}
client-id: ${{ secrets.EDGE_CLIENT_ID }}
client-secret: ${{ secrets.EDGE_CLIENT_SECRET }}
access-token-url: ${{ secrets.EDGE_ACCESS_TOKEN_URL }}
zip-path: dist/exts/${{ steps.pkg.outputs.name }}-edge.zip
continue-on-error: true
###############################################################################