mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 22:11:38 +00:00
- Revised the section on running Roblox Plugin Tests to include instructions for both Windows and non-Windows environments, enhancing accessibility for users. - Removed the requirement for Roblox Studio in the documentation, streamlining the testing process.
4.1 KiB
4.1 KiB
/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)
stylua plugin/src
2. Auto-fix Rust Formatting
cargo fmt
3. Lua Static Analysis (Selene) - MUST PASS WITH ZERO ISSUES
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:
- FIX THEM IMMEDIATELY before proceeding - do not just report them
- Common fixes:
unused_variable: Replace with_(e.g.,for _ = 1, 10 do) or remove the variable entirelyunused_variablefor imports: Remove the unused require/import line
- Re-run Selene after fixes to confirm exit code 0
- Only proceed once Selene shows:
Results: 0 errors, 0 warnings, 0 parse errors
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, fix them before proceeding.
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
On Windows:
.\scripts\unit-test-plugin.ps1
Otherwise:
bash scripts/unit-test-plugin.sh
rbx-dom (submodule)
All rbx-dom steps run inside the rbx-dom/ directory.
8. Auto-fix Lua Formatting (Stylua) for rbx_dom_lua
cd rbx-dom
stylua rbx_dom_lua/src
cd ..
9. Auto-fix Rust Formatting
cd rbx-dom
cargo fmt
cd ..
10. Lua Static Analysis (Selene) for rbx_dom_lua - MUST PASS WITH ZERO ISSUES
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
cd rbx-dom
cargo clippy --fix --allow-dirty --allow-staged
Then verify with:
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
cd rbx-dom
cargo build --verbose
cargo build --all-features --verbose
cd ..
13. Run ALL rbx-dom Rust Tests
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
--- 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.