Skip to content

feat(docker): add Docker support with multi-stage build and WebUI int… #84

feat(docker): add Docker support with multi-stage build and WebUI int…

feat(docker): add Docker support with multi-stage build and WebUI int… #84

Workflow file for this run

name: CI Build
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: web/package-lock.json
- name: Build Web UI (bundled)
run: |
npm ci --prefix web
npm -C web run build
test -f src/cccc/ports/web/dist/index.html
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install build deps
run: |
python -m pip install -U pip build twine
- name: Build
run: |
python -m compileall -q src/cccc
python -m build
python -m twine check dist/*
- name: Smoke test wheel
run: |
python -m pip install --force-reinstall dist/*.whl
cccc version
python - <<'PY'
import importlib.resources as ir
web_index = ir.files("cccc.ports.web").joinpath("dist/index.html")
help_md = ir.files("cccc.resources").joinpath("cccc-help.md")
assert web_index.is_file(), f"missing bundled web UI: {web_index}"
assert help_md.is_file(), f"missing bundled help playbook: {help_md}"
print("OK: bundled web UI + help playbook")
PY