This directory contains CI/CD workflows for the controller.c project.
Triggered on: Every push and PR to main/develop branches
Jobs:
- fmt: Checks code formatting with
rustfmt - clippy: Runs linter checks with
clippy - test: Runs the test suite
- build: Builds on Ubuntu and macOS
- build-ios: Builds for iOS device and simulator targets
Triggered on: Daily at midnight UTC (or manual trigger)
Jobs:
- check-nightly: Tests compatibility with Rust nightly
- outdated-deps: Checks for outdated dependencies
Triggered on: Push/PR to main branch
Jobs:
- doc: Builds documentation and checks for broken links
Automated dependency updates for:
- Cargo dependencies (weekly)
- GitHub Actions (weekly)
Rust formatting configuration:
- Edition: 2021
- Max width: 100 characters
- Unix newlines
- Auto-reorder imports
Standard PR template for contributors
Add these to your README.md:


cargo fmtcargo clippy --all-targets --all-features -- -D warningscargo test --allcargo doc --no-deps --all-features --opencargo install cargo-audit
cargo auditAll workflows use caching for:
- Cargo registry (
~/.cargo/registry) - Cargo git index (
~/.cargo/git) - Build artifacts (
target/)
This significantly speeds up CI runs.
None currently required. All workflows run with default permissions.
To customize workflows:
- Edit the relevant
.ymlfile in.github/workflows/ - Adjust the
rustfmt.tomlfor formatting preferences - Update
dependabot.ymlfor dependency update frequency
Workflow fails on fmt?
cargo fmt --all
git add .
git commit -m "Format code"Workflow fails on clippy?
cargo clippy --all-targets --all-features --fix
git add .
git commit -m "Fix clippy warnings"iOS build fails? Make sure targets are installed:
rustup target add aarch64-apple-ios
rustup target add aarch64-apple-ios-sim