Merge pull request #111 from abhijithvijayan/react-typescript-vite

feat: build script for manual release flows
This commit is contained in:
Abhijith Vijayan 2026-02-03 22:29:31 +05:30 committed by GitHub
commit 3679cdaafe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

82
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,82 @@
name: Build and Deploy
run-name: ${{ github.actor }} started build action
on:
push:
branches:
- main
tags:
- 'v*.*.*'
pull_request:
branches:
- main
# Allows to run this workflow manually from the Actions tab
workflow_dispatch:
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: '${{ github.workflow }}-${{ github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for all browsers
run: npm run build
- name: Upload Chrome extension artifact
uses: actions/upload-artifact@v4
with:
name: chrome-extension
path: extension/chrome.zip
- name: Upload Firefox extension artifact
uses: actions/upload-artifact@v4
with:
name: firefox-extension
path: extension/firefox.xpi
deploy:
needs: build
runs-on: ubuntu-latest
# Only deploy when a tag is pushed (e.g., v1.0.0)
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build for all browsers
run: npm run build
- name: Deploy to extension branch
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./extension
publish_branch: extension
keep_files: false