Fix various codebase rots (stale CI, new Rust lints, broken MSRV checks by transitive dependency upgrades) #377
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: | |
push: | |
branches: '*' | |
pull_request: | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUSTFLAGS: "-C debuginfo=0 --deny warnings" | |
RUSTDOCFLAGS: -Dwarnings | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
# See top README for MSRV policy | |
rust-version: [1.69.0, stable] | |
steps: | |
- uses: actions/checkout@v4 | |
# Downgrade all dependencies to their minimum version, both to ensure our | |
# minimum version bounds are correct and buildable, as well as to satisfy | |
# our MSRV check when arbitrary dependencies bump their MSRV beyond our | |
# MSRV in a patch-release. | |
# This implies that downstream consumers can only rely on our MSRV when | |
# downgrading various (indirect) dependencies. | |
- uses: hecrj/setup-rust-action@v2 | |
with: | |
rust-version: nightly | |
if: ${{ matrix.rust-version != 'stable' }} | |
- name: Downgrade dependencies | |
run: cargo +nightly generate-lockfile -Zminimal-versions | |
if: ${{ matrix.rust-version != 'stable' }} | |
- uses: hecrj/setup-rust-action@v2 | |
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 +stable install cargo-ndk | |
- 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-mainloop example | |
if: matrix.rust-version == 'stable' | |
working-directory: examples/agdk-mainloop | |
run: > | |
cargo ndk | |
-t arm64-v8a | |
-t armeabi-v7a | |
-t x86_64 | |
-t x86 | |
-o app/src/main/jniLibs/ -- build | |
- name: Build na-mainloop example | |
if: matrix.rust-version == 'stable' | |
working-directory: examples/na-mainloop | |
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@v4 | |
- name: Format | |
run: cargo fmt --all -- --check | |
working-directory: android-activity | |
- name: Format na-mainloop example | |
run: cargo fmt --all -- --check | |
working-directory: examples/na-mainloop | |
- name: Format agdk-mainloop example | |
run: cargo fmt --all -- --check | |
working-directory: examples/agdk-mainloop |