name: CI permissions: contents: read on: push: branches: [main] paths-ignore: - 'docs/**' - 'docs_check.py' - '**/*.md' pull_request: branches: [main] paths-ignore: - 'docs/**' - 'docs_check.py' - '**/*.md' jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.11' - uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' cache-dependency-path: explorer/package-lock.json - name: Build Explorer frontend working-directory: explorer run: | npm ci npm run build - run: pip install build - run: python -m build - name: Verify Explorer frontend is packaged run: | python - <<'PY' import zipfile from pathlib import Path wheels = list(Path("dist").glob("*.whl")) assert wheels, "No wheel was built" with zipfile.ZipFile(wheels[0]) as wheel: names = set(wheel.namelist()) assert "semantica/static/index.html" in names, "Explorer index.html missing from wheel" assert any(name.startswith("semantica/static/assets/") for name in names), "Explorer assets missing from wheel" print("Explorer frontend is packaged") PY