Bnjoroge/property testing

Merged
BN
3mo ago
+5815-217

Summary by cubic

Adds a pure scheduler model and property tests to align our runner with GitHub Actions across DAG needs, matrix expansion, conditions, and step update merging. Also introduces DAG validation in the parser and a gated local test API for CI simulation.

  • New Features

    • aksh-runner-server: new scheduling module modeling needs and matrix fan-out; adds proptest regressions file; optional local test API guarded by --enable-test-api and --test-api-token (loopback only).
    • aksh-gha-parser: DAG validation with unknown-need and cycle errors; pure matrix expansion matching Actions semantics.
    • aksh-gha-expressions + aksh-runner: shared condition helpers (validate_expression, status-function detection) and step condition evaluation with implicit success() && (...).
    • aksh-runner: step update merge/cancellation reconciliation and identity-safe WorkflowStepsUpdate; official oracles included for compatibility checks.
    • Docs: adds docs/property-tests.md and an implementation log.
  • Bug Fixes

    • aksh-gha-parser: preserve task reference fields when building uses steps.
    • aksh-gha-protocol: align AzDO template map parsing and template token handling.