Skip to content

Conversation

@nikomatsakis
Copy link
Member

Basic CI structure.

nikomatsakis and others added 13 commits September 24, 2025 15:22
- Add --ci flag to setup tool for CI builds without installation
- Create CI-specific build functions for Rust, TypeScript, and Swift
- Add comprehensive GitHub Actions workflow with caching
- Support cross-platform builds (Ubuntu and macOS)
- Include conditional test running for all languages
- Optimize for CI with npm ci and production webpack builds

Co-authored-by: Claude <[email protected]>
- Replace --ci flag with proper `cargo setup ci` subcommand
- Add Commands enum with Ci variant for better CLI structure
- Update help text to show subcommands section
- Update GitHub Actions workflow to use new subcommand syntax
- Improves usability by making ci a distinct mode rather than conflicting flag

Co-authored-by: Claude <[email protected]>
- Replace `cargo build --release` with `cargo check --release` in CI mode
- Cargo check only does type checking without code generation
- Significantly faster while still catching all compilation errors
- Update function name and comments to reflect checking vs building

Co-authored-by: Claude <[email protected]>
- Add CiCommands enum with Check and Test variants
- Implement cargo setup ci check for compilation verification
- Implement cargo setup ci test for running all tests
- Add dedicated test functions for Rust, TypeScript, and Swift
- Update GitHub Actions to use both check and test commands
- Maintain backward compatibility with bare 'ci' defaulting to check

Co-authored-by: Claude <[email protected]>
…o alias

- Create new `ci` crate in its own directory with dedicated CI logic
- Add `cargo ci` alias in .cargo/config.toml for cleaner command interface
- Move all CI functionality from setup tool to dedicated ci tool
- Support `cargo ci check` and `cargo ci test` subcommands
- Update GitHub Actions workflow to use new `cargo ci` commands
- Clean up setup tool by removing CI-related code and subcommands
- Maintain separation of concerns: setup for development, ci for automation

Co-authored-by: Claude <[email protected]>
- Update setup, ci, and test-utils crates to use edition = "2024"
- All crates now consistently use Rust 2024 edition
- Verified all components still build correctly

Co-authored-by: Claude <[email protected]>
- Split single build job into separate check and test jobs
- Both jobs run in parallel across ubuntu-latest and macos-latest
- Improves CI speed by running compilation checks and tests concurrently
- Each job maintains same caching strategy for optimal performance

Co-authored-by: Claude <[email protected]>
- Add ANCHOR comments to ci/src/main.rs for key functions
- Create md/design/ci-tool.md with comprehensive CI tool documentation
- Document check and test commands, component details, and local usage
- Add CI Tool chapter to mdbook SUMMARY.md
- Follow mdbook conventions using anchor-based code inclusion

Co-authored-by: Claude <[email protected]>
- Set RUST_BACKTRACE=1 environment variable when running cargo test
- Helps diagnose test failures with full stack traces in CI

Co-authored-by: Claude <[email protected]>
- Add with_context to tmux command execution for better error diagnostics
- Include both stdout and stderr in tmux session creation failures
- Include session UUID in error messages for easier debugging

Co-authored-by: Claude <[email protected]>
- Add tmux_available() helper to check for tmux installation
- Skip test_session_persistence when tmux not available (e.g., in CI)
- Prevents test failures in environments without tmux
- Aligns with future plan to replace tmux with Rust pty manager

Co-authored-by: Claude <[email protected]>
@nikomatsakis nikomatsakis merged commit 8fd1a9c into symposium-dev:main Sep 27, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant