rojo/.cursor/commands/ci.md
Joe f496bee347 Refactor CI pipeline scripts and documentation
- Consolidated CI pipeline steps into PowerShell and Bash scripts for improved usability and consistency.
- Updated documentation in `ci.md` to clarify the execution process and options for skipping the rbx-dom section.
- Enhanced error handling and reporting in the scripts to provide clearer feedback on CI step results.
- Streamlined formatting and linting processes for both Rojo and rbx-dom, ensuring a more efficient CI workflow.
2026-02-10 16:46:26 -06:00

2.6 KiB

/ci - Complete CI Pipeline

Run the complete CI pipeline by executing the appropriate platform script.

Instructions

1. Determine rbx-dom Flag

  • By default, run without the skip flag (full suite including rbx-dom).
  • If the user's message asks to skip rbx-dom, pass the skip flag (-NoRbxDom / --no-rbx-dom).

2. Run the CI Script

Windows (PowerShell):

.\scripts\ci.ps1           # with rbx-dom
.\scripts\ci.ps1 -NoRbxDom # without rbx-dom

macOS/Linux (Bash):

bash scripts/ci.sh              # with rbx-dom
bash scripts/ci.sh --no-rbx-dom # without rbx-dom

Monitor the script output as it runs. After each step completes, check its result. If a step failed, kill the script and switch to manual fixing (step 3) — don't let it continue to the next step.

3. Fix Failures Between Steps

When a step fails, stop the script and fix the issue before continuing. Use targeted commands to speed up the feedback loop:

  1. Formatting/linting failures — auto-fix with the relevant formatter (cargo fmt, stylua), then verify with the specific check command only (e.g. cargo fmt --check).

  2. Test failures — investigate the implementation, not just the tests. For every failing test:

    • Read the failing test to understand what behavior it asserts.
    • Read the implementation code the test exercises.
    • Determine the root cause:
      • Implementation regression/bug: The feature is incomplete or broken. Fix the implementation so the test passes. Do not weaken or delete the test.
      • Outdated test fixture: The test's snapshot or fixture data is stale because of an intentional change. Update the fixture with cargo insta review/cargo insta accept, or regenerate the fixture data. Confirm the new fixture reflects correct behavior.
      • Incomplete feature: A new feature was added but doesn't fully handle all cases the tests cover. Complete the feature implementation rather than trimming the tests to match a partial implementation.
    • Never delete or gut a test just to make CI green. Tests exist for a reason — the code must satisfy them, not the other way around.
    • Re-run only the failing test(s) to verify fixes quickly (e.g. cargo test <test_name>, cargo test -p <crate>). Do not re-run the entire suite until you believe all issues are resolved.
  3. After all known issues are fixed, re-run the full CI script from step 2 to catch any remaining failures.

  4. Repeat until the script exits with Overall: PASS.

4. Report

Once CI passes clean, provide a brief summary of what was fixed (if anything) and confirm the final result.