Skip to content

v1.3.0

v1.3.0 #28

Workflow file for this run

name: Release
on:
release:
types: [published]
push:
tags:
- "v*"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: Setup Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: 1.3.11
- name: Install
run: bun install --frozen-lockfile
- name: Type check
run: bun run type-check
- name: Test
run: bun test
- name: Build
env:
VITE_WEATHER_API_KEY: ${{ secrets.VITE_WEATHER_API_KEY }}
run: RELEASE_BUILD=1 bun run build
- name: Lint (Firefox)
run: bun run lint:firefox
- name: Package
run: bun run pack:zips
- name: Determine version
id: ver
run: echo "version=$(bun scripts/version.mjs)" >> $GITHUB_OUTPUT
- name: Upload artifacts
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
with:
name: extension-zips
path: |
tabula-${{ steps.ver.outputs.version }}-chrome.zip
tabula-${{ steps.ver.outputs.version }}-firefox.zip
# Step 1/2: Attach pre-built zips. XPI is not yet available here (signed below).
- name: Attach zips to Release
if: github.event_name == 'release'
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v2.0.5
with:
files: |
tabula-${{ steps.ver.outputs.version }}-chrome.zip
tabula-${{ steps.ver.outputs.version }}-firefox.zip
- name: Publish to Firefox AMO
if: github.event_name == 'release'
env:
AMO_JWT_ISSUER: ${{ secrets.AMO_JWT_ISSUER }}
AMO_JWT_SECRET: ${{ secrets.AMO_JWT_SECRET }}
WEB_EXT_API_KEY: ${{ secrets.AMO_JWT_ISSUER }}
WEB_EXT_API_SECRET: ${{ secrets.AMO_JWT_SECRET }}
run: bun run publish:firefox
# Kept separate from the zips upload — signed XPI is produced after AMO sign step.
- name: Upload signed XPI artifact
if: github.event_name == 'release'
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
with:
name: signed-firefox-xpi
path: web-ext-artifacts/*.xpi
if-no-files-found: ignore
# Step 2/2: Attach signed XPI. A second release step is required because
# the XPI is only available after the AMO signing step above.
- name: Attach signed XPI to Release
if: github.event_name == 'release'
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v2.0.5
with:
files: web-ext-artifacts/*.xpi
# Chrome Web Store publishing disabled - requires $5 developer fee
# Uncomment when ready to publish to Chrome
# - name: Publish to Chrome Web Store
# if: github.event_name == 'release' && env.CHROME_EXTENSION_ID != ''
# env:
# 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 }}
# CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
# CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
# REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}
# run: bun run publish:chrome