Skip to content

ci: push-event CI runs startup-fail (0 jobs) — macOS/Windows matrix can't launch (operator/billing-gated) #225

Description

@domattioli

Problem

Every python-package.yml push-event run for ~1 week is conclusion: failure with 0 jobs (startup_failure — the run never launches a single job). Sampled run IDs (all event: push, total_count jobs = 0):

27587042854  01105cd  2026-06-16
27576518938  7f2c06c  2026-06-15  (run #428)
27566783544  af70ebb  2026-06-15
27560471888  21a18e3  2026-06-15
27477837645  35cfea8  2026-06-13
... (17 consecutive failures in the sampled window)

Diagnosis

  • 0 jobs + failure = startup_failure, not a test failure. The workflow YAML is valid (yaml.safe_load OK; the fromJson(... && ... || ...) matrix expression evaluates fine on push → full 3-OS × 3-py matrix).
  • The push leg requests macos-latest + windows-latest (added deliberately per Windows portability: encoding/newline on file I/O + Windows CI runner #121/CI runtime optimization: measure + xdist safety + macOS profiling #122); the PR leg is ubuntu-only and the workflow-conformance runs succeed.
  • Pattern (push full-matrix fails to start, ubuntu-only PR runs are fine) points to Actions runner availability / spending-limit on the macOS (10×) + Windows (2×) minutes, i.e. an account/billing condition — not a code defect.

Evidence it is not the code

Local full fast suite on development HEAD (35c2b9c) is green:

1015 passed, 47 skipped, 14 warnings   (block_o excluded; MPLBACKEND=Agg)
tests/test_fem_iterative_solver.py ....   (new MINRES solver, 4/4)

So the rolling PR #224 code is healthy; the red X is infra.

What's needed (operator-only)

  1. Confirm whether GitHub Actions spending limit / included-minutes is exhausted for macOS/Windows on this account, or whether hosted macOS/Windows runners are otherwise unavailable.
  2. Decide the durable shape: (a) raise/adjust the spending limit, or (b) move macOS/Windows to an on-demand (workflow_dispatch / scheduled / release-gated) lane so routine pushes get a green ubuntu signal and cross-platform coverage runs deliberately. Option (b) preserves the Windows portability: encoding/newline on file I/O + Windows CI runner #121/CI runtime optimization: measure + xdist safety + macOS profiling #122 intent without burning minutes on every push.

Already mitigated (this session)

development 35c2b9c adds concurrency: cancel-in-progress to python-package.yml so superseded pushes/PR-syncs stop stacking redundant full-matrix runs — reduces minute burn but does not fix the underlying startup_failure (which is the operator decision above).

Filed by the CHILmesh hour-02 rotation follow-on (maintenance track). Not auto-fixable — undoing the deliberate macOS/Windows matrix is an operator call, and the root cause is billing/runner availability.

[repo: CHILmesh · session: 2026-06-20T06Z-rotation · refs: #121, #122, #224]

Activity

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

    priority: normalDefault importance.status: blockedCannot progress; non-operator dependency.type: bugDefect in existing behavior.

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions