diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5cd042..7048bf8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,91 +1,100 @@ -name: ci - -on: - push: - branches: [main] - pull_request: - -env: - CARGO_INCREMENTAL: 0 - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - - name: Install Rust targets - run: > - rustup target add - aarch64-linux-android - armv7-linux-androideabi - x86_64-linux-android - i686-linux-android - - - name: Install cargo-ndk - run: cargo install cargo-ndk - - - name: Setup Java - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '17' - - - name: Setup Android SDK - uses: android-actions/setup-android@v2 - - - name: Build game-activity - working-directory: android-activity - run: > - cargo ndk - -t arm64-v8a - -t armeabi-v7a - -t x86_64 - -t x86 - build --features game-activity - - - name: Build native-activity - working-directory: android-activity - run: > - cargo ndk - -t arm64-v8a - -t armeabi-v7a - -t x86_64 - -t x86 - build --features native-activity - - - name: Build agdk-egui example - working-directory: examples/agdk-egui - run: > - cargo ndk - -t arm64-v8a - -t armeabi-v7a - -t x86_64 - -t x86 - -o app/src/main/jniLibs/ -- build - - format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - components: rustfmt - - - name: Format - run: cargo fmt --all -- --check - working-directory: android-activity - - - name: Format agdk-egui example - run: cargo fmt --all -- --check - working-directory: examples/agdk-egui +name: ci + +on: + push: + branches: [main] + pull_request: + +env: + CARGO_INCREMENTAL: 0 + RUSTFLAGS: "-C debuginfo=0 --deny warnings" + RUSTDOCFLAGS: -Dwarnings + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # We need to support the same compiler versions as Winit + rust_version: [1.57.0, stable] + steps: + - uses: actions/checkout@v2 + + - uses: hecrj/setup-rust-action@v1 + with: + rust-version: ${{ matrix.rust_version }} + + - name: Install Rust targets + run: > + rustup target add + aarch64-linux-android + armv7-linux-androideabi + x86_64-linux-android + i686-linux-android + + - name: Install cargo-ndk + run: cargo install cargo-ndk + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + + - name: Setup Android SDK + uses: android-actions/setup-android@v2 + + - name: Build game-activity + working-directory: android-activity + run: > + cargo ndk + -t arm64-v8a + -t armeabi-v7a + -t x86_64 + -t x86 + build --features game-activity + + - name: Build native-activity + working-directory: android-activity + run: > + cargo ndk + -t arm64-v8a + -t armeabi-v7a + -t x86_64 + -t x86 + build --features native-activity + + - name: Build agdk-egui example + working-directory: examples/agdk-egui + run: > + cargo ndk + -t arm64-v8a + -t armeabi-v7a + -t x86_64 + -t x86 + -o app/src/main/jniLibs/ -- build + + - name: Documentation + run: > + cargo ndk -t arm64-v8a doc --no-deps + + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: rustfmt + + - name: Format + run: cargo fmt --all -- --check + working-directory: android-activity + + - name: Format agdk-egui example + run: cargo fmt --all -- --check + working-directory: examples/agdk-egui