rojo/.cursor/commands/ci.md
Joe b2c8f2848b Enhance CI pipeline documentation and improve git command handling
- Updated the `/ci` command documentation to clarify the execution steps for the CI pipeline, specifically regarding the rbx-dom section.
- Modified git command invocations in `CloneCommand` and `InitCommand` to include the `--no-verify` flag, allowing commits to bypass pre-commit hooks.
- Added null input handling for git commands in `CloneCommand`, `InitCommand`, and `Syncback` to prevent blocking on stdin.
2026-02-06 22:43:54 -06:00

173 lines
4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# /ci - Complete CI Pipeline
Run the complete CI pipeline: auto-fix all formatting, run all linters, build everything, and run ALL tests.
## Instructions
- If the user's message contains **"rbx-dom"**, run **both** the Rojo and rbx-dom sections below.
- Otherwise, **skip the entire rbx-dom section** (steps 8–13) to save time.
Execute ALL applicable steps in order. Fix issues automatically where possible.
---
## Rojo
### 1. Auto-fix Lua Formatting (Stylua)
```powershell
stylua plugin/src
```
### 2. Auto-fix Rust Formatting
```powershell
cargo fmt
```
### 3. Lua Static Analysis (Selene) - MUST PASS WITH ZERO ISSUES
```powershell
selene plugin/src
```
**CRITICAL: Selene must exit with code 0 (zero errors AND zero warnings).** Warnings count as failures.
If Selene reports ANY errors or warnings:
1. **FIX THEM IMMEDIATELY** before proceeding - do not just report them
2. Common fixes:
- `unused_variable`: Replace with `_` (e.g., `for _ = 1, 10 do`) or remove the variable entirely
- `unused_variable` for imports: Remove the unused require/import line
3. Re-run Selene after fixes to confirm exit code 0
4. Only proceed once Selene shows: `Results: 0 errors, 0 warnings, 0 parse errors`
### 4. Rust Linting (Clippy) - Auto-fix where possible
```powershell
cargo clippy --fix --allow-dirty --allow-staged
```
Then verify with:
```powershell
cargo clippy --all-targets --all-features
```
If there are remaining warnings/errors, fix them before proceeding.
### 5. Build Everything
```powershell
cargo build --locked --all-targets --all-features
```
### 6. Run ALL Rust Tests
```powershell
cargo test --locked --all-targets --all-features
```
### 7. Run Roblox Plugin Tests (requires Roblox Studio)
```powershell
.\scripts\unit-test-plugin.ps1
```
---
## rbx-dom (submodule)
All rbx-dom steps run inside the `rbx-dom/` directory.
### 8. Auto-fix Lua Formatting (Stylua) for rbx_dom_lua
```powershell
cd rbx-dom
stylua rbx_dom_lua/src
cd ..
```
### 9. Auto-fix Rust Formatting
```powershell
cd rbx-dom
cargo fmt
cd ..
```
### 10. Lua Static Analysis (Selene) for rbx_dom_lua - MUST PASS WITH ZERO ISSUES
```powershell
cd rbx-dom
selene rbx_dom_lua/src
cd ..
```
Same rules as step 3: exit code 0 required, fix all errors and warnings before proceeding.
### 11. Rust Linting (Clippy) - Auto-fix where possible
```powershell
cd rbx-dom
cargo clippy --fix --allow-dirty --allow-staged
```
Then verify with:
```powershell
cd rbx-dom
cargo clippy --all-targets --all-features -- -D warnings
cd ..
```
If there are remaining warnings/errors, fix them before proceeding.
### 12. Build rbx-dom
```powershell
cd rbx-dom
cargo build --verbose
cargo build --all-features --verbose
cd ..
```
### 13. Run ALL rbx-dom Rust Tests
```powershell
cd rbx-dom
cargo test --verbose
cargo test --all-features --verbose
cd ..
```
---
## Reporting
After ALL steps complete, provide a summary:
```
=== CI COMPLETE ===
--- Rojo ---
Formatting:
- Stylua: [fixed X files / no changes needed]
- Rustfmt: [fixed X files / no changes needed]
Linting:
- Selene: PASS (0 errors, 0 warnings) / FAIL (X errors, Y warnings)
- Clippy: PASS / FAIL (X warnings)
Build: PASS / FAIL
Tests:
- Rust: X passed, Y failed
- Plugin: X passed, Y failed, Z skipped
--- rbx-dom (only if included) ---
Formatting:
- Stylua (rbx_dom_lua): [fixed X files / no changes needed]
- Rustfmt: [fixed X files / no changes needed]
Linting:
- Selene (rbx_dom_lua): PASS (0 errors, 0 warnings) / FAIL (X errors, Y warnings)
- Clippy: PASS / FAIL (X warnings)
Build: PASS / FAIL
Build (all features): PASS / FAIL
Tests:
- Rust: X passed, Y failed
- Rust (all features): X passed, Y failed
--- Overall: PASS / FAIL ---
```
**IMPORTANT:**
- Selene PASS requires exit code 0 (0 errors AND 0 warnings). Any warnings = FAIL.
- If any step fails, continue running the remaining steps to get a complete picture, then report all failures at the end.
- Do not report "Overall: PASS" unless ALL linters pass with zero issues across all sections that were run.
- If rbx-dom was skipped, omit its section from the report entirely.