Skip to content

fix(tests): patch out live connectivity probe in 4 micro-tests (#292) #4

fix(tests): patch out live connectivity probe in 4 micro-tests (#292)

fix(tests): patch out live connectivity probe in 4 micro-tests (#292) #4

Workflow file for this run

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