name: redbear-ci on: push: branches: [0.3.1, master] pull_request: jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: recursive - uses: dtolnay/rust-toolchain@nightly with: toolchain: nightly-2026-05-24 - uses: dtolnay/rust-toolchain@nightly with: toolchain: nightly-2026-05-24 components: rustfmt, clippy - name: Check sync-versions compliance run: ./local/scripts/sync-versions.sh --check - name: cargo fmt check (redbear-* crates) run: | set -e for f in $(find local/recipes -path "*redbear-*/source/Cargo.toml" -not -path "*/target/*"); do echo "--- cargo fmt --check: $f ---" cargo fmt --manifest-path "$f" -- --check done - name: cargo check (redbear-* crates) run: | set -e for f in $(find local/recipes -path "*redbear-*/source/Cargo.toml" -not -path "*/target/*"); do echo "--- cargo check: $f ---" cargo check --manifest-path "$f" --target x86_64-unknown-redox --locked done continue-on-error: true - name: cargo check host (library-only crates) run: | set -e for f in $(find local/recipes -path "*redbear-hid-core/source/Cargo.toml" -not -path "*/target/*"); do echo "--- cargo check host: $f ---" cargo check --manifest-path "$f" done continue-on-error: true - name: cargo test host (pure-logic crates) run: | set -e for f in $(find local/recipes -path "*redbear-*/source/Cargo.toml" -not -path "*/target/*"); do has_test=$(grep -c '\[\[test\]\]' "$f" 2>/dev/null || true) if [ "$has_test" -gt 0 ]; then echo "--- cargo test: $f ---" cargo test --manifest-path "$f" || echo "NOTE: some tests may require Redox target; continuing" fi done continue-on-error: true