Skip to content

Make CI Change-Aware and Add Release Validation - #64

Merged
PSchmiedmayer merged 6 commits into
mainfrom
feature/granular-ci
Aug 20, 2026
Merged

Make CI Change-Aware and Add Release Validation#64
PSchmiedmayer merged 6 commits into
mainfrom
feature/granular-ci

Conversation

@PSchmiedmayer

@PSchmiedmayer PSchmiedmayer commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

♻️ Current situation & Problem

Grove's Tests workflow currently treats every Package.swift, CI-infrastructure, and script change as affecting the complete package matrix. This causes unrelated unit and UI jobs to run across the monorepo, while the existing FHIR output validator is not integrated into Grove's CI. There is also no single manual workflow for running every enabled check before a release.

⚙️ Release Notes

  • Select affected logical packages from changed source paths and evaluated base/head SwiftPM package graphs.
  • Include packages containing transitive target dependents for focused manifest changes, with conservative full-suite fallbacks for global changes.
  • Fail fast when a newly added SwiftPM target is not classified in packages.toml, preventing silent test-selection gaps.
  • Avoid package-test fan-out for DocC, workflow-only, and known non-test script changes.
  • Run FHIR output conformance only for FHIR-related changes and cache the external implementation-guide build.
  • Use macos-latest for GitHub-hosted macOS jobs.
  • Add a manual Release Validation workflow that runs every currently enabled test, deployment-floor build, static-analysis check, documentation build, and repository-standard check.
  • Pretty-print documentation builds with xcbeautify and GitHub Actions annotations while retaining the complete raw log for repository-specific DocC warning checks.
  • Use explicit canonical and superseded URLs for the retired HealthKit time-range extensions so documentation builds compile with Xcode 26.6.

📚 Documentation

This does not add or modify public APIs. The selection rules and conservative fallbacks are documented inline in Scripts/affected-test-matrix.py; Scripts/ci-dryrun.sh mirrors the workflow's manifest-aware selection for local inspection.

✅ Testing

  • PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s Scripts/Tests -p 'test_*.py'
  • actionlint .github/workflows/*.yml
  • shellcheck Scripts/build-documentation.sh Scripts/ci-dryrun.sh Scripts/validate-fhir-conformance.sh
  • bash -n Scripts/build-documentation.sh Scripts/ci-dryrun.sh Scripts/validate-fhir-conformance.sh
  • GROVE_ENABLE_DEFAULT_PACKAGE_TRAITS=1 swift build --target GroveHealthKitFHIR
  • Scripts/build-documentation.sh
  • git diff --check

The selector has focused regression coverage for manifest target/product/dependency changes, package configuration changes, FHIR triggers, documentation-only changes, shared CI infrastructure, conservative script handling, and newly added unclassified targets.

The first CI run for this PR intentionally selects the complete suite because the Tests workflow itself changed.

Code of Conduct & Contributing Guidelines

By creating and submitting this pull request, you agree to follow our Code of Conduct and Contributing Guidelines:

Copilot AI lite review requested due to automatic review settings August 19, 2026 21:48

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 2b395aee-4ea7-4ca1-a4df-7328753a6d2e


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@PSchmiedmayer PSchmiedmayer self-assigned this Aug 20, 2026
@PSchmiedmayer PSchmiedmayer added enhancement New feature or request github_actions Pull requests that update GitHub Actions code and removed github_actions Pull requests that update GitHub Actions code labels Aug 20, 2026
@PSchmiedmayer PSchmiedmayer added this to the 0.3.0 milestone Aug 20, 2026
@github-project-automation github-project-automation Bot moved this to Todo in Grove Aug 20, 2026
@PSchmiedmayer
PSchmiedmayer merged commit e3d77e5 into main Aug 20, 2026
28 of 129 checks passed
@PSchmiedmayer
PSchmiedmayer deleted the feature/granular-ci branch August 20, 2026 05:29
@github-project-automation github-project-automation Bot moved this from Todo to Done in Grove Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants