Skip to content

Release

Release #38

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
extension:
description: Publish extension to testers
type: boolean
default: true
push:
branches: [main]
concurrency: ${{ github.workflow }}-${{ github.ref }}
jobs:
snapshot:
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm
registry-url: https://registry.npmjs.org
- run: pnpm install --frozen-lockfile
- name: Version packages (snapshot)
run: pnpm changeset version --snapshot snapshot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build
run: pnpm build
env:
BUILD_NUMBER: ${{ github.run_number }}
SNAPSHOT: 'true'
- name: Publish npm snapshots
run: pnpm changeset publish --tag snapshot
env:
NPM_CONFIG_PROVENANCE: true
- name: Zip Chrome extension
if: inputs.extension
working-directory: packages/devtools-extension
run: cd dist && zip -r ../extension-chrome.zip .
- name: Publish Chrome extension to testers
if: inputs.extension
uses: mnao305/chrome-extension-upload@4008e29e13c144d0f6725462cbd49b7c291b4928 # v5.0.0
with:
file-path: packages/devtools-extension/extension-chrome.zip
extension-id: ${{ secrets.CHROME_EXTENSION_ID }}
client-id: ${{ secrets.CHROME_CLIENT_ID }}
client-secret: ${{ secrets.CHROME_CLIENT_SECRET }}
refresh-token: ${{ secrets.CHROME_REFRESH_TOKEN }}
publish: true
publish-target: trustedTesters
- name: Build Firefox extension
if: inputs.extension
working-directory: packages/devtools-extension
run: node --experimental-strip-types build.mjs --target=firefox
env:
BUILD_NUMBER: ${{ github.run_number }}
SNAPSHOT: 'true'
- name: Zip Firefox extension
if: inputs.extension
working-directory: packages/devtools-extension
run: cd dist && zip -r ../extension-firefox.zip .
- name: Zip source for AMO review
if: inputs.extension
run: zip -r source.zip . -x 'node_modules/*' '*/node_modules/*' '*/dist/*' '.git/*' '*.zip'
- name: Publish Firefox extension (unlisted)
if: inputs.extension
uses: trmcnvn/firefox-addon@0d05671269b82c69c3f22ed86d8e772e89d47cf4 # v1
with:
uuid: oidc-devtool@wolfcola
xpi: packages/devtools-extension/extension-firefox.zip
manifest: packages/devtools-extension/dist/manifest.json
api-key: ${{ secrets.AMO_JWT_ISSUER }}
api-secret: ${{ secrets.AMO_JWT_SECRET }}
- name: Publish VS Code extension (pre-release)
if: inputs.extension
working-directory: packages/vscode-extension
run: pnpm vsce publish --no-dependencies --pre-release --pat "$VSCE_PAT"
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}
release:
if: github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm
registry-url: https://registry.npmjs.org
- run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
env:
BUILD_NUMBER: ${{ github.run_number }}
- name: Create release PR or publish
uses: changesets/action@63a615b9cd06ba9a3e6d13796c7fbcb080a60a0b # v1.8.0
with:
publish: pnpm release
version: pnpm run version
title: 'chore: version packages'
commit: 'chore: version packages'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_CONFIG_PROVENANCE: true
BUILD_NUMBER: ${{ github.run_number }}