P23 — Skinny Packages: - Break conf→bib circular dependency with lazy guarded import - Extract aco.table.base → conf.table_base (shared foundation) - Add try/except ImportError guards on all cross-module imports - Define per-module optional-dependencies in pyproject.toml - Slim base deps to just pydantic; all heavy deps in optional groups - Add gen_config.py --check validation for module/dep sync - Add skinny-install CI matrix job (tests each extra in isolation) P24 — Tree Reorganization: - Move service configs to infra/ (traefik, coredns, grafana, etc.) - Consolidate Dockerfiles under infra/images/ - Move styles/ → assets/css/ + assets/icons/ + assets/nature.py - Update compose.yml, stack.toml, gen_config.py, all backend emitters - Update bootstrap scripts and install_certs.sh P25 — Cloud Provider Abstraction: - Add cloud/ directory with self-hosted, aws, gcp, azure stubs - Add cloud contexts (aws, gcp, azure) to stack.toml - Add conf/storage.py — get_filesystem() dispatches per context - Add aws, gcp, azure optional dependency groups - Document service mapping for each provider All 11955 tests pass. Zero functionality lost.
114 lines
2.8 KiB
YAML
114 lines
2.8 KiB
YAML
# DO NOT EDIT — generated by gen_config.py from stack.toml
|
|
# Re-generate: uv run python dev/scripts/gen_config.py
|
|
|
|
name: Infra CI
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'notebooks/**'
|
|
- 'infra/images/notebooks.Dockerfile'
|
|
- 'zotero/**'
|
|
- 'infra/images/zotero.Dockerfile'
|
|
- 'docs/**'
|
|
- 'infra/images/docs.Dockerfile'
|
|
- 'infra/images/api.Dockerfile'
|
|
- 'src/**'
|
|
- 'pyproject.toml'
|
|
- 'infra/rustfs/**'
|
|
- 'infra/images/mc.Dockerfile'
|
|
pull_request:
|
|
paths:
|
|
- 'notebooks/**'
|
|
- 'infra/images/notebooks.Dockerfile'
|
|
- 'zotero/**'
|
|
- 'infra/images/zotero.Dockerfile'
|
|
- 'docs/**'
|
|
- 'infra/images/docs.Dockerfile'
|
|
- 'infra/images/api.Dockerfile'
|
|
- 'src/**'
|
|
- 'pyproject.toml'
|
|
- 'infra/rustfs/**'
|
|
- 'infra/images/mc.Dockerfile'
|
|
|
|
jobs:
|
|
notebooks:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Hadolint notebooks
|
|
uses: https://github.com/hadolint/hadolint-action@v3.1.0
|
|
with:
|
|
dockerfile: infra/images/notebooks.Dockerfile
|
|
|
|
|
|
|
|
- name: Build notebooks
|
|
run: docker build -f infra/images/notebooks.Dockerfile -t local/notebooks:build notebooks/
|
|
|
|
zotero:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Hadolint zotero
|
|
uses: https://github.com/hadolint/hadolint-action@v3.1.0
|
|
with:
|
|
dockerfile: infra/images/zotero.Dockerfile
|
|
|
|
|
|
|
|
- name: Build zotero
|
|
run: docker build -f infra/images/zotero.Dockerfile -t local/zotero:build zotero/
|
|
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Hadolint docs
|
|
uses: https://github.com/hadolint/hadolint-action@v3.1.0
|
|
with:
|
|
dockerfile: infra/images/docs.Dockerfile
|
|
|
|
|
|
|
|
- name: Build docs
|
|
run: docker build -f infra/images/docs.Dockerfile -t local/docs:build .
|
|
|
|
api:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Hadolint api
|
|
uses: https://github.com/hadolint/hadolint-action@v3.1.0
|
|
with:
|
|
dockerfile: infra/images/api.Dockerfile
|
|
|
|
|
|
|
|
- name: Build api
|
|
run: docker build -f infra/images/api.Dockerfile -t local/api:build .
|
|
|
|
mc:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Hadolint mc
|
|
uses: https://github.com/hadolint/hadolint-action@v3.1.0
|
|
with:
|
|
dockerfile: infra/images/mc.Dockerfile
|
|
|
|
|
|
|
|
- name: Build mc
|
|
run: docker build -f infra/images/mc.Dockerfile -t local/mc:build infra/rustfs/
|