Files
context-extractor/.gitea/workflows/ci.yml
T
ilia 55018a6e3e
CI / automation-js (vitest + real Chromium) (pull_request) Successful in 43s
CI / Lint + tests (pull_request) Successful in 9m52s
Add Node/TS automation twin sharing the extension core.
Expose ExtractorSession for Playwright/camoufox-js so Node automations can
import context dumps instead of shelling out to the Python package. Same
fixture as the Python tests; wired into Makefile and Gitea CI.
2026-07-15 18:17:14 -04:00

111 lines
2.9 KiB
YAML

name: CI
on:
push:
branches: [master, main]
pull_request:
branches: [master, main]
jobs:
quality:
name: Lint + tests
runs-on: ubuntu-latest
defaults:
run:
working-directory: automation
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
cache-dependency-path: automation/pyproject.toml
- name: Set up Node (JS syntax check only)
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Syntax-check extension JS
working-directory: ${{ github.workspace }}
run: |
set -euo pipefail
for f in \
extension/core/dom.js \
extension/core/prompt.js \
extension/page-patcher.js \
extension/content.js \
extension/background.js \
extension/popup.js
do
node --check "$f"
echo "OK $f"
done
python3 -m json.tool extension/manifest.json >/dev/null
echo "OK extension/manifest.json"
- name: Verify shared-core symlinks
working-directory: ${{ github.workspace }}
run: |
set -euo pipefail
test -L automation/context_extractor/js/dom.js
test -L automation/context_extractor/js/prompt.js
diff -q automation/context_extractor/js/dom.js extension/core/dom.js
diff -q automation/context_extractor/js/prompt.js extension/core/prompt.js
test -L automation-js/src/js/dom.js
test -L automation-js/src/js/prompt.js
diff -q automation-js/src/js/dom.js extension/core/dom.js
diff -q automation-js/src/js/prompt.js extension/core/prompt.js
- name: Install package + dev deps
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Install Playwright Chromium
run: playwright install --with-deps chromium
- name: Pytest
run: pytest -q
- name: Package extension zip (smoke)
working-directory: ${{ github.workspace }}
run: |
python3 scripts/package_extension.py
test -f dist/context-extractor-extension.zip
quality-js:
name: automation-js (vitest + real Chromium)
runs-on: ubuntu-latest
defaults:
run:
working-directory: automation-js
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install deps
run: npm install
- name: Install Playwright Chromium
run: npx playwright install --with-deps chromium
- name: Typecheck
run: npm run typecheck
- name: Vitest
run: npm test
- name: Build (verifies dist/js copy step)
run: npm run build