New llm FastAPI service (src/llm/api.py + rag.py + web/chat.html): grounded streaming chat over indexed comments with cited sources. Own image, compose service, Traefik reef entry with git-sso, llm subdomain registered. Dashboard tile + README row. stack llm serve CLI.
213 lines
5.9 KiB
YAML
213 lines
5.9 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/marimo/**'
|
|
- 'infra/images/notebooks.Dockerfile'
|
|
- 'infra/images/zotero.Dockerfile'
|
|
- 'infra/images/zotero/**'
|
|
- 'docs/**'
|
|
- 'infra/images/docs.Dockerfile'
|
|
- 'infra/images/api.Dockerfile'
|
|
- 'src/**'
|
|
- 'pyproject.toml'
|
|
- 'infra/images/llm.Dockerfile'
|
|
- 'src/**'
|
|
- 'pyproject.toml'
|
|
- 'infra/rustfs/**'
|
|
- 'infra/images/mc.Dockerfile'
|
|
pull_request:
|
|
paths:
|
|
- 'notebooks/**'
|
|
- 'infra/marimo/**'
|
|
- 'infra/images/notebooks.Dockerfile'
|
|
- 'infra/images/zotero.Dockerfile'
|
|
- 'infra/images/zotero/**'
|
|
- 'docs/**'
|
|
- 'infra/images/docs.Dockerfile'
|
|
- 'infra/images/api.Dockerfile'
|
|
- 'src/**'
|
|
- 'pyproject.toml'
|
|
- 'infra/images/llm.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 .
|
|
|
|
- name: Frontend smoke gate
|
|
run: python3 dev/scripts/nb_fe_smoke.py --image local/notebooks:build --network ci
|
|
|
|
- name: File failure issue
|
|
if: failure()
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
|
|
run: |
|
|
uv sync --no-dev --quiet 2>/dev/null || true
|
|
uv run python -m api.diag.ci \
|
|
--workflow "Infra CI" --job "notebooks" \
|
|
--run "${{ github.run_number }}" \
|
|
--sha "${{ github.sha }}" \
|
|
--ref "${{ github.ref }}" || true
|
|
|
|
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 .
|
|
|
|
- name: File failure issue
|
|
if: failure()
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
|
|
run: |
|
|
uv sync --no-dev --quiet 2>/dev/null || true
|
|
uv run python -m api.diag.ci \
|
|
--workflow "Infra CI" --job "zotero" \
|
|
--run "${{ github.run_number }}" \
|
|
--sha "${{ github.sha }}" \
|
|
--ref "${{ github.ref }}" || true
|
|
|
|
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 .
|
|
|
|
- name: File failure issue
|
|
if: failure()
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
|
|
run: |
|
|
uv sync --no-dev --quiet 2>/dev/null || true
|
|
uv run python -m api.diag.ci \
|
|
--workflow "Infra CI" --job "docs" \
|
|
--run "${{ github.run_number }}" \
|
|
--sha "${{ github.sha }}" \
|
|
--ref "${{ github.ref }}" || true
|
|
|
|
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 .
|
|
|
|
- name: File failure issue
|
|
if: failure()
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
|
|
run: |
|
|
uv sync --no-dev --quiet 2>/dev/null || true
|
|
uv run python -m api.diag.ci \
|
|
--workflow "Infra CI" --job "api" \
|
|
--run "${{ github.run_number }}" \
|
|
--sha "${{ github.sha }}" \
|
|
--ref "${{ github.ref }}" || true
|
|
|
|
llm:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
- name: Hadolint llm
|
|
uses: https://github.com/hadolint/hadolint-action@v3.1.0
|
|
with:
|
|
dockerfile: infra/images/llm.Dockerfile
|
|
|
|
|
|
|
|
- name: Build llm
|
|
run: docker build -f infra/images/llm.Dockerfile -t local/llm:build .
|
|
|
|
- name: File failure issue
|
|
if: failure()
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
|
|
run: |
|
|
uv sync --no-dev --quiet 2>/dev/null || true
|
|
uv run python -m api.diag.ci \
|
|
--workflow "Infra CI" --job "llm" \
|
|
--run "${{ github.run_number }}" \
|
|
--sha "${{ github.sha }}" \
|
|
--ref "${{ github.ref }}" || true
|
|
|
|
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/
|
|
|
|
- name: File failure issue
|
|
if: failure()
|
|
env:
|
|
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
|
|
run: |
|
|
uv sync --no-dev --quiet 2>/dev/null || true
|
|
uv run python -m api.diag.ci \
|
|
--workflow "Infra CI" --job "mc" \
|
|
--run "${{ github.run_number }}" \
|
|
--sha "${{ github.sha }}" \
|
|
--ref "${{ github.ref }}" || true
|