8dece7800f
Testing / remote-protocol-compat (0.9.3) (push) Successful in 52s
Testing / test (push) Successful in 1m2s
Testing / remote-protocol-compat (0.9.5) (push) Successful in 1m0s
Package Extension / package-extension (push) Successful in 1m11s
Build & Publish Package / publish (push) Successful in 1m7s
- Add browser source grouping metadata to SDK-created tabs, groups, list results, and aggregate count results. - Render grouped local/remote browser tables consistently for clients, tabs, groups, windows, sessions, and remote status output. - Document remote control, auth, HTTP gateway usage, and the refreshed project structure in the README. - Add coverage for grouped output and BrowserCounts browser_groups. - Bump the Python package, extension manifest, and lockfile to 0.15.6. - Add a just publish helper for building and publishing release artifacts.
94 lines
3.3 KiB
Makefile
94 lines
3.3 KiB
Makefile
# browser-cli — task runner
|
|
# Run `just` or `just --list` to see all recipes.
|
|
|
|
# Default browser profile for `install` / quick checks
|
|
browser := "brave"
|
|
|
|
# Show available recipes
|
|
default:
|
|
@just --list
|
|
|
|
# ── Setup ──────────────────────────────────────────────────────────────
|
|
|
|
# Install Python deps + Node deps for the extension build
|
|
setup:
|
|
uv sync
|
|
npm ci
|
|
|
|
# Register the native messaging host for a browser (default: {{browser}})
|
|
install browser=browser:
|
|
uv run browser-cli install {{browser}}
|
|
|
|
# ── Python ─────────────────────────────────────────────────────────────
|
|
|
|
# Run the full Python test suite
|
|
test:
|
|
uv run pytest -q
|
|
|
|
# Run tests verbosely
|
|
testv:
|
|
uv run pytest -v
|
|
|
|
# Run a single test file or node id, e.g. `just test-one tests/test_api.py`
|
|
test-one target:
|
|
uv run pytest -v {{target}}
|
|
|
|
# Run tests with a coverage report
|
|
cov:
|
|
uv run pytest --cov=browser_cli --cov-report=term-missing
|
|
|
|
# ── Extension (TypeScript / MV3) ───────────────────────────────────────
|
|
|
|
# Build the extension bundle (extension/background.js)
|
|
build:
|
|
npm run build:extension
|
|
|
|
# Run the JS (node:test) extension tests
|
|
test-ext:
|
|
npm run test:extension
|
|
|
|
# Full extension gate: tsc + build + node --check + JS tests
|
|
check:
|
|
npm run check:extension
|
|
|
|
# ── Everything ─────────────────────────────────────────────────────────
|
|
|
|
# Run the complete gate: extension check + Python tests
|
|
ci: check test
|
|
|
|
# ── Release ────────────────────────────────────────────────────────────
|
|
|
|
# Show the current version
|
|
version:
|
|
@grep -m1 '^version' pyproject.toml | cut -d'"' -f2
|
|
|
|
# Bump version in pyproject.toml AND extension/manifest.json, e.g. `just bump 0.10.5`
|
|
bump new:
|
|
sed -i 's/^version = ".*"/version = "{{new}}"/' pyproject.toml
|
|
sed -i 's/"version": ".*"/"version": "{{new}}"/' extension/manifest.json
|
|
@echo "bumped to {{new}} — remember to update uv.lock (uv lock) and rebuild the extension"
|
|
|
|
# Verify both version files agree
|
|
version-check:
|
|
@py=$(grep -m1 '^version' pyproject.toml | cut -d'"' -f2); \
|
|
ext=$(grep -m1 '"version"' extension/manifest.json | cut -d'"' -f4); \
|
|
if [ "$py" = "$ext" ]; then echo "ok: $py"; else echo "MISMATCH pyproject=$py manifest=$ext"; exit 1; fi
|
|
|
|
# Build into /tmp/dist-browser-cli and publish using credentials from .env
|
|
publish:
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
set -a
|
|
[ ! -f .env ] || source .env
|
|
set +a
|
|
rm -rf /tmp/dist-browser-cli
|
|
mkdir -p /tmp/dist-browser-cli
|
|
uv build --out-dir /tmp/dist-browser-cli
|
|
uv publish /tmp/dist-browser-cli/*
|
|
|
|
# ── Demos ──────────────────────────────────────────────────────────────
|
|
|
|
# Run the Python SDK demo
|
|
demo:
|
|
uv run python examples/demo.py
|