rojo/.cursor/commands/ci.md
Joe b368eb2401 Add CI pipeline documentation and enhance syncback architecture
- Introduced a new CI pipeline documentation file outlining steps for auto-fixing formatting, running linters, building, and testing.
- Documented the Rojo syncback architecture, detailing improvements to prevent duplicate file creation and format mismatches.
- Updated syncback logic to ensure existing instances are updated instead of creating duplicates, enhancing project file management.
- Added tests for encoding instances and handling nested children to improve reliability in syncback operations.
2026-02-01 18:18:31 -06:00

1.6 KiB

/ci - Complete CI Pipeline

Run the complete CI pipeline: auto-fix all formatting, run all linters, build everything, and run ALL tests.

Instructions

Execute ALL of the following steps in order. Fix issues automatically where possible.

1. Auto-fix Lua Formatting (Stylua)

stylua plugin/src

2. Auto-fix Rust Formatting

cargo fmt

3. Lua Static Analysis (Selene)

selene plugin/src

If there are errors, report them and offer to help fix.

4. Rust Linting (Clippy) - Auto-fix where possible

cargo clippy --fix --allow-dirty --allow-staged

Then verify with:

cargo clippy --all-targets --all-features

If there are remaining warnings/errors, report them and offer to help fix.

5. Build Everything

cargo build --locked --all-targets --all-features

6. Run ALL Rust Tests

cargo test --locked --all-targets --all-features

7. Run Roblox Plugin Tests (requires Roblox Studio)

.\scripts\unit-test-plugin.ps1

Reporting

After ALL steps complete, provide a summary:

=== CI COMPLETE ===

Formatting:
  - Stylua: [fixed X files / no changes needed]
  - Rustfmt: [fixed X files / no changes needed]

Linting:
  - Selene: PASS / FAIL (X issues)
  - Clippy: PASS / FAIL (X warnings)

Build: PASS / FAIL

Tests:
  - Rust: X passed, Y failed
  - Plugin: X passed, Y failed, Z skipped

Overall: PASS / FAIL

If any step fails, continue running the remaining steps to get a complete picture, then report all failures at the end.