Skip to content

PyAutoScientist 3b-2: reusable smoke-tests workflow (kill 9 fat copies) #51

Description

@Jammy2211

Overview

Generalise the per-workspace smoke_tests.yml (9 near-identical ~100-line copies, hard-coded dependency chains) into one Heart-owned reusable workflow, per the docs-build.yml precedent — --auto supervised, prompt PyAutoMind/issued/pyautoscientist_3b_smoke_reusable.md (drafted at Phase-3a, human-directed "do Phase 3"). This is the missing piece that makes an adopter's workspace CI a thin caller, and deletes ~900 duplicated lines from the live setup.

Plan

  1. Heart .github/workflows/smoke-tests.yml (reusable): input package → workspace + dependency-chain map; owns the ceremony — chain checkout, branch matching, base source install, jupyter tooling, cache dirs, python .github/scripts/run_smoke.py, Slack-on-failure. Always checks out PyAutoBuild + sets its PYTHONPATH (the main-workspace runners need it; benign for the test/HowTo tier — disclosed parity delta).
  2. Per-repo install epilogue stays workspace-owned: a new tiny .github/scripts/smoke_install.sh (receives PYTHON_VERSION) carrying exactly the lines that differ today — [optional] extras on 3.12, numba/nufftax on 3.13, tensorflow-probability pin, autofit's nautilus + NSS git pins. Base + epilogue reproduces each repo's current pip set exactly.
  3. Convert autolens_workspace first — the PR run itself is the end-to-end parity proof (same workflow name "Smoke Tests", so Heart's required-workflow gating is untouched; the reusable Navigator Check already proves the pattern under gating).
  4. Sweep the remaining 7 free repos (autofit/autogalaxy workspaces, autofit/autogalaxy _test, HowToFit/Galaxy/Lens). autolens_workspace_test is claimed by rectangular-kernel-cdf-mesh — batched: disjoint override or defer.
  5. Follow-up noted for spawn: with the reusable live, spawn can stamp thin callers into the template family (spec already gates this on 3b-2).

Acceptance

  • Each converted repo's Smoke Tests check runs green on its PR via the reusable workflow, with the same matrix and pip set (modulo the disclosed PYTHONPATH delta).
  • Heart's config/repos.yaml required-workflow names unchanged.
  • One PR per repo; supervised gates.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions