Skip to content

CI design for the test suite #8

Closed

Description

@dtinth-claw

Part of #3 (wayfinder map)

Question

Design the CI for the test suite: a new lightweight workflow vs. integration into autobuild.yml; which Qt version(s) and platform(s) to run on (given upstream's minimum supported Qt); which triggers (PRs only?); and how to keep it fast enough that maintainers see it as pure win.

Activity

  1. dtinth-claw commented on Jul 22, 2026

    @dtinth-claw
    Author

    🔒 Claimed by agent (orchestrator dispatch, 2026-07-22) — ci-shepherd agent wiring up the workflow on testing-harness and shepherding it to green on Linux/macOS/Windows.

  2. dtinth-claw commented on Jul 22, 2026

    @dtinth-claw
    Author

    Resolution

    CI is wired and verified green on all three platforms: run 29926662716 — every job's log contains Totals: 41 passed, 0 failed, 0 skipped, 0 blacklisted.

    Design as landed (.github/workflows/unit-tests.yml on testing-harness):

    • Single "Unit Tests" job, 4-config matrix, fail-fast: false:
      config Qt how duration
      ubuntu-22.04 5.15 (apt) qmake + make 26s
      ubuntu-24.04 6.x (apt) qmake6 + make 36s
      macos-15 6.10.2 (install-qt-action) + Xcode 16.3.0 pin (mirrors autobuild) 49s
      windows-latest 6.10.2 MSVC qmake + nmake 66s
    • permissions: contents: read, SHA-pinned third-party actions, paths: filters — house style per the #5 research.
    • Hard execution gate on every platform: output must contain Totals: 41 passed (grep on Unix, findstr on Windows) — a job can no longer pass on exit code alone.

    Findings worth keeping:

    1. The Qt 5.15 job compiled and passed with zero source changes — the suite is genuinely Qt5-clean; the only platform fix ever needed was NOMINMAX in test.pro on Windows.
    2. macos-latest (Xcode 26) cannot compile Qt 6.x headers (qyieldcpu.h __yield); the fix is upstream autobuild's own convention (macos-15 + Xcode 16.3.0, same pinned action SHA) — an upstream PR should reuse it.
    3. Windows oddity: the test exe's stdout was silently 0 bytes under every capture method (cmd redirect, pwsh Tee/redirect). Sidestepped robustly with QTest's own -o test-output.txt,txt file writer; exact culprit unidentified (suspect console-handle inheritance in the runner's nested cmd tree). Noted in case a future Windows job needs another console app's stdout.
    4. Still to reshape before upstreaming (flagged in a comment in the workflow): triggers are currently workflow_dispatch + push-to-testing-harness for iteration; the upstream version should use push/pull_request on main with the same paths: filters.

    Feeds Scope the first upstream PR, which is now the only open ticket.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions