Skip to content

Add Azure Pipelines for cross-platform CI verification (macOS, Windows, Linux) #8

Description

@rmems

Summary

Add an Azure Pipelines configuration to run CPU-only cross-platform verification on ubuntu-latest, macos-latest, and windows-latest alongside the existing GitHub Actions workflow (.github/workflows/ci.yml).

Motivation

The repository currently validates builds and tests exclusively through GitHub Actions on ubuntu-latest only (basic fmt/clippy/build/test with pinned actions and caching). Running the same CPU checks on Azure Pipelines provides:

  • Cross-platform coverage for macOS and Windows (critical for a pure-Rust, zero-dependency crate that should behave identically everywhere).
  • A redundant CI signal in case GitHub Actions has outages or runner issues.
  • Early detection of platform-specific build/test regressions (e.g., path separators, case sensitivity, linking, line endings).

This follows the exact pattern established in the sibling rmems/corinth-canal repo (open issue #109) for org consistency across Limen-Neural Rust libraries.

Scope

Run the following CPU-only checks on every pull request and push to main:

  • cargo fmt --check
  • cargo clippy --all-targets --all-features -- -D warnings (adapt dead_code allowance if any in engram surface)
  • cargo test --all-features (or --lib --locked for speed)
  • cargo check --examples --all-features --locked (or build)
  • Optional: cargo llvm-cov --lib --all-features --locked --lcov --output-path lcov.info (follow-up if coverage desired)

Platforms:

  • ubuntu-latest
  • macos-latest
  • windows-latest

Toolchain: latest stable Rust via rustup default stable.

The azure-pipelines.yml should live at the repository root (matching corinth-canal convention).

Non-goals

  • GPU/CUDA or self-hosted runners (n/a for this pure CPU zero-dep crate; those remain on GitHub Actions if ever added).
  • Docker build/publish remains (or will be) on GitHub Actions (see sibling Docker issue).
  • Sentry release workflow (not used here).
  • Making the Azure check required immediately (start as informational, per corinth #109 open questions).

Acceptance Criteria

  • azure-pipelines.yml exists at the repository root.
  • Pipeline triggers on pull requests and pushes to main.
  • Linux, macOS, and Windows jobs all run fmt, clippy, build/check, and test steps with caching.
  • Clippy warnings fail the build, matching GitHub Actions behavior.
  • Azure Pipelines check appears on pull requests (informational to start).
  • Coverage upload to Codecov is configured or a follow-up issue is filed (if llvm-cov step added).
  • Documentation (README.md) mentions the new pipeline in a ## Development or CI section (with commands + links to both GH + Azure).
  • Cross-link to the sibling Docker workflow issue.

Open Questions

  • Should Azure Pipelines upload LCOV coverage to Codecov to mirror GitHub Actions (if coverage step is added)?
  • Should the Azure Pipelines check be required for merge, or start as informational?
  • Which Azure Pipelines caching strategy should be used for Cargo registry and target/ (matching the existing GH ci.yml cache key)?
  • Any org-level Azure DevOps project/secret setup required beyond the yml?

Related


Modeled after corinth-canal #109 and engram's existing CI patterns for org consistency.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions