mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2024-12-25 23:01:30 +11:00
4895a29e92
It seems the symlink to `ndk-bundle` and this environment variable pointing to it have been removed to prevent the sdkmanager from failing, when finding the SDK setup to be in an "indeterminate" state. It is now up to the users themselves to install an NDK through that tool or point the right variables to a preinstalled "latest" NDK. https://github.com/actions/virtual-environments/issues/2689 https://github.com/actions/virtual-environments/pull/5926
123 lines
5.1 KiB
YAML
123 lines
5.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
Check_Formatting:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: hecrj/setup-rust-action@v1
|
|
with:
|
|
rust-version: stable
|
|
components: rustfmt
|
|
- name: Check Formatting
|
|
run: cargo +stable fmt --all -- --check
|
|
|
|
tests:
|
|
name: Tests
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
rust_version: [stable, nightly]
|
|
platform:
|
|
# Note: Make sure that we test all the `docs.rs` targets defined in Cargo.toml!
|
|
- { target: x86_64-pc-windows-msvc, os: windows-latest, }
|
|
- { target: i686-pc-windows-msvc, os: windows-latest, }
|
|
- { target: x86_64-pc-windows-gnu, os: windows-latest, host: -x86_64-pc-windows-gnu }
|
|
- { target: i686-pc-windows-gnu, os: windows-latest, host: -i686-pc-windows-gnu }
|
|
- { target: i686-unknown-linux-gnu, os: ubuntu-latest, }
|
|
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest, }
|
|
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest, options: --no-default-features, features: x11 }
|
|
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest, options: --no-default-features, features: "wayland,wayland-dlopen" }
|
|
- { target: aarch64-linux-android, os: ubuntu-latest, cmd: 'apk --' }
|
|
- { target: x86_64-apple-darwin, os: macos-latest, }
|
|
- { target: x86_64-apple-ios, os: macos-latest, }
|
|
- { target: aarch64-apple-ios, os: macos-latest, }
|
|
# We're using Windows rather than Ubuntu to run the wasm tests because caching cargo-web
|
|
# doesn't currently work on Linux.
|
|
- { target: wasm32-unknown-unknown, os: windows-latest, }
|
|
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
CARGO_INCREMENTAL: 0
|
|
PKG_CONFIG_ALLOW_CROSS: 1
|
|
RUSTFLAGS: "-C debuginfo=0 --deny warnings"
|
|
OPTIONS: ${{ matrix.platform.options }}
|
|
FEATURES: ${{ format(',{0}', matrix.platform.features ) }}
|
|
CMD: ${{ matrix.platform.cmd }}
|
|
RUSTDOCFLAGS: -Dwarnings
|
|
|
|
runs-on: ${{ matrix.platform.os }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
# Used to cache cargo-web
|
|
- name: Cache cargo folder
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ~/.cargo
|
|
key: ${{ matrix.platform.target }}-cargo-${{ matrix.rust_version }}
|
|
|
|
- uses: hecrj/setup-rust-action@v1
|
|
with:
|
|
rust-version: ${{ matrix.rust_version }}${{ matrix.platform.host }}
|
|
targets: ${{ matrix.platform.target }}
|
|
components: clippy
|
|
|
|
- name: Setup NDK path
|
|
shell: bash
|
|
# "Temporary" workaround until https://github.com/actions/virtual-environments/issues/5879#issuecomment-1195156618
|
|
# gets looked into.
|
|
run: echo "ANDROID_NDK_ROOT=$ANDROID_NDK_LATEST_HOME" >> $GITHUB_ENV
|
|
- name: Install Linux dependencies
|
|
if: (matrix.platform.os == 'ubuntu-latest')
|
|
run: sudo apt-get update && sudo apt-get install pkg-config cmake libfreetype6-dev libfontconfig1-dev
|
|
- name: Install GCC Multilib
|
|
if: (matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')
|
|
run: sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install g++-multilib gcc-multilib libfreetype6-dev:i386 libfontconfig1-dev:i386
|
|
- name: Install cargo-apk
|
|
if: contains(matrix.platform.target, 'android')
|
|
run: cargo install cargo-apk
|
|
|
|
- name: Check documentation
|
|
shell: bash
|
|
run: cargo $CMD doc --no-deps --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES --document-private-items
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: cargo $CMD build --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
|
|
|
|
- name: Build tests
|
|
shell: bash
|
|
run: cargo $CMD test --no-run --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
|
|
- name: Run tests
|
|
shell: bash
|
|
if: (
|
|
!contains(matrix.platform.target, 'android') &&
|
|
!contains(matrix.platform.target, 'ios') &&
|
|
!contains(matrix.platform.target, 'wasm32'))
|
|
run: cargo $CMD test --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
|
|
|
|
- name: Lint with clippy
|
|
shell: bash
|
|
if: (matrix.rust_version != 'nightly') && !contains(matrix.platform.options, '--no-default-features')
|
|
run: cargo clippy --all-targets --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES -- -Dwarnings
|
|
|
|
- name: Build with serde enabled
|
|
shell: bash
|
|
run: cargo $CMD build --verbose --target ${{ matrix.platform.target }} $OPTIONS --features serde,$FEATURES
|
|
|
|
- name: Build tests with serde enabled
|
|
shell: bash
|
|
run: cargo $CMD test --no-run --verbose --target ${{ matrix.platform.target }} $OPTIONS --features serde,$FEATURES
|
|
- name: Run tests with serde enabled
|
|
shell: bash
|
|
if: (
|
|
!contains(matrix.platform.target, 'android') &&
|
|
!contains(matrix.platform.target, 'ios') &&
|
|
!contains(matrix.platform.target, 'wasm32'))
|
|
run: cargo $CMD test --verbose --target ${{ matrix.platform.target }} $OPTIONS --features serde,$FEATURES
|