Repository navigation
release: use GPT-5.6 Luna inner agents #50
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Build wheel and sdist | |
| run: | | |
| python -m pip install --upgrade pip build twine pytest "psycopg[binary]>=3.1,<4.0" | |
| python -m build | |
| python -m twine check dist/* | |
| - name: Verify release artifacts | |
| run: | | |
| python -m venv /tmp/shellbrain-release-smoke | |
| /tmp/shellbrain-release-smoke/bin/python -m pip install --upgrade pip | |
| /tmp/shellbrain-release-smoke/bin/python -m pip install --no-deps dist/*.whl | |
| /tmp/shellbrain-release-smoke/bin/shellbrain --help | |
| /tmp/shellbrain-release-smoke/bin/shellbrain recall --help | |
| /tmp/shellbrain-release-smoke/bin/shellbrain teach --help | |
| python - <<'PY' | |
| from pathlib import Path | |
| import glob | |
| import zipfile | |
| wheels = glob.glob("dist/shellbrain-*.whl") | |
| if len(wheels) != 1: | |
| raise SystemExit(f"expected one wheel, found {wheels!r}") | |
| required = { | |
| "app/settings/internal-agents/defaults.yaml", | |
| "app/entrypoints/cli/handlers/working_agent/teach.py", | |
| "migrations/versions/20260519_0023_explicit_teach_trigger.py", | |
| "migrations/versions/20260519_0024_read_retrieval_latency_indexes.py", | |
| "migrations/versions/20260519_0025_repair_recall_source_input_section_constraint.py", | |
| "migrations/versions/20260519_0026_repair_knowledge_build_trigger_constraint.py", | |
| "migrations/versions/20260519_0027_concept_embeddings.py", | |
| "migrations/versions/20260520_0028_knowledge_build_lifecycle.py", | |
| "onboarding_assets/codex/AGENTS.md", | |
| "onboarding_assets/codex/shellbrain/SKILL.md", | |
| "onboarding_assets/claude/skills/shellbrain/SKILL.md", | |
| "onboarding_assets/cursor/skills/shellbrain/SKILL.md", | |
| } | |
| with zipfile.ZipFile(Path(wheels[0])) as wheel: | |
| names = set(wheel.namelist()) | |
| missing = sorted(required - names) | |
| if missing: | |
| raise SystemExit("wheel is missing release-critical files: " + ", ".join(missing)) | |
| PY | |
| python -m pytest -q tests/config/test_packaging_smoke.py tests/config/test_install_script.py | |
| - name: Upload distribution artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python-dist | |
| path: dist/* | |
| publish-pypi: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/project/shellbrain/ | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: Download distribution artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: python-dist | |
| path: dist | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 |