feat(docker): add Docker support with multi-stage build and WebUI int… #84
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |