Files
stack/.gitea/workflows/notebooks-integration.yml
kert 15ab55a286
All checks were successful
CI / lint (push) Successful in 29s
CI / notebooks-smoke (push) Successful in 1m31s
Deploy / notebooks (push) Has been skipped
Deploy / zotero (push) Has been skipped
Deploy / docs (push) Has been skipped
Deploy / api (push) Has been skipped
Deploy / mc (push) Has been skipped
Deploy / report (push) Successful in 14s
CI / test (push) Successful in 13m32s
fix(ci): unbreak notebook quality gates first CI exercise
Three failures from 187e776's first run:

- notebooks-smoke: _template.py opens data/aco.duckdb read-only, which
  doesn't exist in a fresh checkout — stub an empty-but-valid database
  before the run (information_schema queries return zero rows, fine).
- notebooks-integration FE smoke: treat CellNotInitializedError as
  benign. The nightly run regenerates session snapshots; with
  auto_instantiate=false the editor renders cached UI elements whose
  cells aren't running and logs this error on every such notebook.
  Verified against live prod: editor probe now passes.
- notebooks-integration failure step: 'uv: command not found' — the job
  had no setup-uv step, so api.diag.ci could never file on failure.
2026-07-10 11:36:25 -04:00

58 lines
2.0 KiB
YAML

# DO NOT EDIT — generated by gen_config.py from stack.toml
# Re-generate: uv run python dev/scripts/gen_config.py
name: Notebooks Integration
on:
workflow_dispatch:
schedule:
- cron: "30 3 * * *"
jobs:
notebooks-integration:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: https://github.com/actions/checkout@v4
- name: Set up uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
env:
UV_INSTALL_DIR: /usr/local/bin
- name: Run full notebook set in prod container
env:
GITEA_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
run: |
set -euo pipefail
docker exec notebooks mkdir -p /tmp/nbtest
docker cp dev/scripts/nb_integration.py notebooks:/tmp/nbtest/
docker cp dev/scripts/nb_issue_filer.py notebooks:/tmp/nbtest/
docker cp infra/marimo/nb-tests.toml notebooks:/tmp/nbtest/
docker exec \
-e GITEA_TOKEN \
-e GITEA_API_BASE=http://git:3000/api/v1 \
notebooks \
uv run --project /home/kert/workspace python /tmp/nbtest/nb_integration.py \
--set all --file-issues \
--nb-dir /home/kert/notebooks \
--config /tmp/nbtest/nb-tests.toml \
--report /tmp/nbtest/report.json
docker cp notebooks:/tmp/nbtest/report.json nb-integration-report.json
cat nb-integration-report.json
- name: Frontend smoke against live service
run: python3 dev/scripts/nb_fe_smoke.py --url http://notebooks:2718 --network gateway
- 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 "Notebooks Integration" --job "notebooks-integration" \
--run "${{ github.run_number }}" \
--sha "${{ github.sha }}" \
--ref "${{ github.ref }}" || true