Files
stack/.gitea/workflows/infra-ci.yml
kert 8bd649d9ab feat: skinny packages, tree reorg, cloud abstraction (refs #182–#201)
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.
2026-03-24 15:00:26 -04:00

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/