cloudfox-coreshift-core 2.33.0

Low-level Linux and Android systems primitives for CoreShift (CloudFox)
Documentation
name: CI

on:
  push:
  pull_request:

jobs:
  rust:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install stable Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: aarch64-linux-android,armv7-linux-androideabi

      - name: Install MSRV Rust (1.88)
        uses: dtolnay/rust-toolchain@1.88.0

      - name: Check builds at the declared MSRV
        run: cargo +1.88.0 check -j 1

      - name: Check formatting
        run: cargo fmt --check

      - name: Run tests
        # Tests hang under parallel harness threads (fork/pty integration
        # suite); -j 1 is build parallelism only and does NOT set the harness
        # thread count.
        run: cargo test --lib -- --test-threads=1

      - name: Run clippy
        run: cargo clippy -j 1 --all-targets --all-features -- -D warnings

      - name: Build docs
        run: cargo doc --no-deps

      - name: Check Android aarch64
        run: cargo check --target aarch64-linux-android

      - name: Check Android armv7
        run: cargo check --target armv7-linux-androideabi

      - name: Build Android aarch64 when NDK linker is available
        run: |
          NDK_CLANG="${ANDROID_NDK_HOME:-}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
          if [ -n "${ANDROID_NDK_HOME:-}" ] && [ -x "$NDK_CLANG" ]; then
            CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="$NDK_CLANG" \
              cargo build --target aarch64-linux-android
          else
            echo "Android NDK clang not available via ANDROID_NDK_HOME; skipped Android aarch64 link build"
          fi

      - name: Build Android armv7 when NDK linker is available
        run: |
          NDK_CLANG="${ANDROID_NDK_HOME:-}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang"
          if [ -n "${ANDROID_NDK_HOME:-}" ] && [ -x "$NDK_CLANG" ]; then
            CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$NDK_CLANG" \
              cargo build --target armv7-linux-androideabi
          else
            echo "Android NDK clang not available via ANDROID_NDK_HOME; skipped Android armv7 link build"
          fi