Repository navigation
fix(tests): patch out live connectivity probe in 4 micro-tests (#292) #4
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: Publish to PyPI and Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Trigger on version tags like v1.0.0 | |
| jobs: | |
| test: | |
| name: Run Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| - name: Set up Python | |
| # Pinned explicitly: a bare `uv python install` grabs whatever's | |
| # newest at run time. Confirmed 2026-08-19: it silently picked up | |
| # 3.14.7 for the v6.1.0 release run and 37 tests/micro-tests/my_profile | |
| # (Textual TUI) tests failed with `assert task is not None` inside | |
| # textual/rlock.py -- Textual's RLock breaks under 3.14. The full | |
| # suite passes clean on 3.13.7 (this repo's actual dev/verification | |
| # version), so pin to 3.13 until Textual's 3.14 compatibility is | |
| # confirmed separately. | |
| run: uv python install 3.13 | |
| - name: Install dependencies | |
| run: uv sync --all-extras --dev -p 3.13 | |
| - name: Run unit tests | |
| # tests/ -m "not live_egeria" (previous scope) was a no-op filter: no | |
| # test anywhere is marked "live_egeria" (that name is only a fixture | |
| # in tests/micro-tests/conftest_full.py, not a registered pytest | |
| # marker — see tests/pytest.ini's `markers` list). So this ran the | |
| # ENTIRE suite, including tests/functional-tests/ and | |
| # tests/scenario-tests/, both of which require a real Egeria server | |
| # at localhost:9443 that no GitHub Actions runner has, plus an | |
| # unrelated pytest-asyncio/sniffio configuration issue in several of | |
| # those files. Confirmed 2026-07-20: this gate has never actually | |
| # passed on this repo (774 failed / 231 passed on the v6.0.17.1 run; | |
| # every prior tagged release run in the Actions history also shows | |
| # `failure`). tests/micro-tests/ is the suite actually designed to | |
| # run without live infra (mocks/monkeypatching by default; live mode | |
| # is an explicit opt-in via --live-egeria or PYEG_LIVE_EGERIA=1) — | |
| # confirmed clean (exit 0) standalone. Use that as the CI gate | |
| # instead of a full-suite run that requires infrastructure CI | |
| # doesn't have. | |
| run: uv run pytest tests/micro-tests/ | |
| build-n-publish: | |
| name: Build and Publish to PyPI | |
| needs: test | |
| runs-on: ubuntu-latest | |
| environment: release | |
| permissions: | |
| id-token: write # Required for OIDC trusted publishing | |
| contents: write # Required to create GitHub Release | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| - name: Build package | |
| run: uv build | |
| - name: Publish to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: dist/* | |
| generate_release_notes: true | |
| draft: false | |
| prerelease: false |