Summary
The project has a .github/ directory but the CI setup, while referenced in CONTRIBUTING.md as a requirement for PRs, is not verified to be fully functional or comprehensive. A browser extension that ships to the Chrome Web Store, Firefox Add-ons, and Microsoft Edge Add-ons needs a robust automated build validation that confirms the extension builds correctly for all three targets on every PR — not just passes a linter.
Problem
- The current CI (if present) does not confirm that
build.sh runs successfully and produces valid dist/chrome/, dist/firefox/, and dist/edge/ directories.
- ESLint and Prettier are run locally but there is no enforcement gate at the PR level that blocks merges on violations.
- A manifest or content script error that breaks one browser's build (e.g., a Manifest V3 API used in the Firefox V2 build) would not be caught automatically.
- There are no automated checks confirming that the
webextension-polyfill is correctly bundled into all build targets.
Proposed Solution
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
lint-and-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- name: ESLint
run: npm run lint
- name: Prettier check
run: npx prettier --check .
build:
runs-on: ubuntu-latest
needs: lint-and-format
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- name: Build all targets
run: npm run build
- name: Verify dist structure
run: |
test -d dist/chrome && echo "Chrome build OK"
test -d dist/firefox && echo "Firefox build OK"
test -d dist/edge && echo "Edge build OK"
test -f dist/chrome/manifest.json && echo "Chrome manifest present"
test -f dist/firefox/manifest.json && echo "Firefox manifest present"
Additional Notes
- The
Verify dist structure step is a lightweight sanity check confirming all build targets were produced.
- I will also add a
web-ext lint step using Mozilla's web-ext tool to validate the Firefox extension manifest against the AMO submission requirements, which helps catch Firefox-specific issues before store submission.
Could you please assign this issue to me?
Labels: enhancement, ci/cd, help wanted, GSSoC 2026
Summary
The project has a
.github/directory but the CI setup, while referenced inCONTRIBUTING.mdas a requirement for PRs, is not verified to be fully functional or comprehensive. A browser extension that ships to the Chrome Web Store, Firefox Add-ons, and Microsoft Edge Add-ons needs a robust automated build validation that confirms the extension builds correctly for all three targets on every PR — not just passes a linter.Problem
build.shruns successfully and produces validdist/chrome/,dist/firefox/, anddist/edge/directories.webextension-polyfillis correctly bundled into all build targets.Proposed Solution
Additional Notes
Verify dist structurestep is a lightweight sanity check confirming all build targets were produced.web-ext lintstep using Mozilla'sweb-exttool to validate the Firefox extension manifest against the AMO submission requirements, which helps catch Firefox-specific issues before store submission.Could you please assign this issue to me?
Labels:
enhancement,ci/cd,help wanted,GSSoC 2026