Skip to content

feat(ci): attach test and repro log artifacts to PR orchestrator runs#262

Merged
djm81 merged 3 commits intodevfrom
feature/ci-01-pr-orchestrator-log-artifacts
Feb 16, 2026
Merged

feat(ci): attach test and repro log artifacts to PR orchestrator runs#262
djm81 merged 3 commits intodevfrom
feature/ci-01-pr-orchestrator-log-artifacts

Conversation

@djm81
Copy link
Copy Markdown
Collaborator

@djm81 djm81 commented Feb 16, 2026

Description

Attach test and repro log artifacts to PR Orchestrator workflow runs so failed CI can be debugged by downloading full logs from the Actions Artifacts section without re-running locally.

  • Tests job: Runs hatch run smart-test-full and uploads logs/tests/ as test-logs artifact; coverage XML still uploaded for quality gates.
  • Contract-first-ci job: Captures specfact repro stdout/stderr to logs/repro/, uploads repro-logs and repro-reports (.specfact/reports/enforcement/) as artifacts.
  • Docs: New "CI and GitHub Actions" section in Troubleshooting describing artifact names and how to use them.

Fixes #260

New Features (none)

Contract References: None (workflow and docs only). OpenSpec change: ci-01-pr-orchestrator-log-artifacts.

Type of Change

Please check all that apply:

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🔒 Contract enforcement (adding/updating @icontract decorators)
  • 🧪 Test enhancement (scenario tests, property-based tests)
  • 🔧 Refactoring (code improvement without functionality change)

Contract-First Testing Evidence

Required for all changes affecting CLI commands or public APIs:

No application code or public API changes; workflow YAML and docs only.

Contract Validation

  • Runtime contracts added/updated (@icontract decorators on public APIs)
  • Type checking enforced (@beartype decorators applied)
  • CrossHair exploration completed: hatch run contract-test-exploration
  • Contract violations reviewed and addressed

Test Execution

  • Contract validation: hatch run contract-test-contracts
  • Contract exploration: hatch run contract-test-exploration
  • Scenario tests: hatch run contract-test-scenarios
  • Full test suite: hatch run contract-test-full

Test Quality

  • CLI commands tested with typer test client — N/A (no CLI changes)
  • Edge cases covered with Hypothesis property tests
  • Error handling tested with invalid inputs
  • Rich console output verified manually or with snapshots

How Has This Been Tested?

Contract-First Approach: Workflow and docs only; contract-test and smart-test run; workflow validated with hatch run lint-workflows and hatch run yaml-lint.

Manual Testing

  • Workflow syntax validated with lint-workflows
  • YAML lint passed
  • Tested CLI commands manually — N/A
  • Verified rich console output — N/A

Automated Testing

  • Contract validation passes
  • All existing tests still pass
  • Workflow lint passes

Test Environment

  • Python version: 3.12
  • OS: Ubuntu (GitHub Actions runner)

Checklist

  • My code follows the style guidelines (PEP 8, ruff format, isort)
  • I have performed a self-review of my code
  • I have added/updated contracts (@icontract, @beartype) — N/A
  • I have added/updated docstrings (Google style) — N/A (no Python changes)
  • I have made corresponding changes to documentation
  • My changes generate no new warnings (basedpyright, ruff, pylint)
  • All tests pass locally
  • I have added tests that prove my fix/feature works — N/A (workflow/docs)
  • Any dependent changes have been merged — PR to dev exists (feat(ci): attach test and repro log artifacts to PR orchestrator runs #261)

Quality Gates Status

  • Type checking ✅ (hatch run type-check)
  • Linting ✅ (hatch run lint)
  • Contract validation ✅ (hatch run contract-test-contracts)
  • Contract exploration ✅ (hatch run contract-test-exploration)
  • Scenario tests ✅ (hatch run contract-test-scenarios)

Screenshots/Recordings (if applicable)

N/A — workflow and documentation changes only.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

architecture Architecture and design changes documentation Improvements or additions to documentation enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Change] Attach test and repro log artifacts to PR orchestrator runs

1 participant