Skip to content

ci: Add PR validation workflow#132

Draft
ragnarula wants to merge 1 commit into
mainfrom
feature/pr-validate
Draft

ci: Add PR validation workflow#132
ragnarula wants to merge 1 commit into
mainfrom
feature/pr-validate

Conversation

@ragnarula

Copy link
Copy Markdown
Collaborator

Summary

Adds .github/workflows/pr-validate.yml, a PR-triggered workflow that fans out the full test suite across every supported platform on public GitHub-hosted runners with no secrets (source is checked out from git; all integration-test services come from public container images).

Jobs (parallel)

Job Platforms What it runs
unit (×4) linux x86_64 (ubuntu-latest), linux aarch64 (ubuntu-24.04-arm), macOS (macos-latest), Windows (windows-latest) cargo test --workspace
integration linux x86_64 only MinIO / DynamoDB-Local / Consul via lore-integration-tests/compose.yaml, then cargo test -p lore-integration-tests --features integration_tests
smoke (×4) all four platforms build lore + loreserver (--features lore-server/failure_generator), then uv run pytest scripts/test -m smoke -n 4
PR Validate gate needs: [unit, integration, smoke]; passes only when all succeed — the single check to require in branch protection

Notes

  • Integration is Linux-x86_64 only because Docker isn't available on hosted macOS/Windows runners. The suite hard-codes 127.0.0.1:9000/9090/8500, which the compose file maps.
  • No protoc neededlore-proto/build.rs falls back to the checked-in generated sources; cc/cbindgen are library deps, so Windows needs no extra tooling.
  • The server is built with failure_generator so fault-injection smoke tests execute rather than skip cleanly.
  • First-party actions are pinned to the same SHAs used in lint.yml; third-party actions (dtolnay/rust-toolchain, Swatinem/rust-cache, astral-sh/setup-uv) currently use release tags — a comment flags pinning them to SHAs if a stricter supply-chain policy is desired.

🤖 Generated with Claude Code

@ragnarula
ragnarula force-pushed the feature/pr-validate branch from 7c1cc1b to 92f6b2a Compare July 20, 2026 13:08
Fan out the full test suite across every supported platform on public
GitHub-hosted runners with no secrets:

- unit: `cargo test --workspace` on linux (x86_64 + aarch64), macOS, and
  Windows.
- integration: MinIO/DynamoDB-Local/Consul via Docker Compose, then
  `cargo test -p lore-integration-tests --features integration_tests`
  (Linux x86_64 only, as Docker is unavailable on hosted macOS/Windows).
- smoke: build `lore` + `loreserver` (with the `failure_generator`
  feature) and run the `scripts/test` pytest suite via uv, on all four
  platforms.

An aggregate `PR Validate` job gates on all of the above so branch
protection can require a single check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Raghav Narula <raghav.narula@epicgames.com>
@ragnarula
ragnarula force-pushed the feature/pr-validate branch from 92f6b2a to 86c286d Compare July 20, 2026 13:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant