CI / Lint + tests (push) Has been cancelled
Ship a shared markdown/prompt core used by a Brave/Chrome MV3 extension and a Python automation API, with pytest coverage, CI, and packaging smoke.
76 lines
2.0 KiB
YAML
76 lines
2.0 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
|
|
|
|
- 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
|