1name: CI 2on: [push, pull_request] 3 4jobs: 5 test: 6 name: Test 7 runs-on: ${{ matrix.os }} 8 strategy: 9 matrix: 10 build: [stable, beta, nightly, macos, win32, win64, mingw] 11 include: 12 - build: stable 13 os: ubuntu-latest 14 rust: stable 15 - build: beta 16 os: ubuntu-latest 17 rust: beta 18 - build: nightly 19 os: ubuntu-latest 20 rust: nightly 21 - build: macos 22 os: macos-latest 23 rust: stable 24 - build: win32 25 os: windows-latest 26 rust: stable-i686 27 - build: win64 28 os: windows-latest 29 rust: stable-x86_64 30 - build: mingw 31 os: windows-latest 32 rust: stable-x86_64-gnu 33 steps: 34 - uses: actions/checkout@master 35 - name: Install Rust (rustup) 36 run: | 37 rustup update ${{ matrix.rust }} --no-self-update 38 rustup default ${{ matrix.rust }} 39 - run: cargo test --verbose 40 - run: cargo test --verbose --no-default-features 41 - run: cargo test --verbose --all-features 42 - run: cargo test --verbose --features serde 43 - run: cargo test --verbose --features std 44 - run: cargo test --verbose --features kv_unstable 45 - run: cargo test --verbose --features kv_unstable_sval 46 - run: cargo test --verbose --features kv_unstable_serde 47 - run: cargo test --verbose --features "kv_unstable kv_unstable_std kv_unstable_sval kv_unstable_serde" 48 - run: cargo run --verbose --manifest-path test_max_level_features/Cargo.toml 49 - run: cargo run --verbose --manifest-path test_max_level_features/Cargo.toml --release 50 51 rustfmt: 52 name: Rustfmt 53 runs-on: ubuntu-latest 54 steps: 55 - uses: actions/checkout@master 56 - name: Install Rust 57 run: | 58 rustup update stable --no-self-update 59 rustup default stable 60 rustup component add rustfmt 61 - run: cargo fmt -- --check 62 63 features: 64 name: Feature check 65 runs-on: ubuntu-latest 66 steps: 67 - uses: actions/checkout@master 68 - name: Install Rust 69 run: | 70 rustup update nightly --no-self-update 71 rustup default nightly 72 - run: cargo build --verbose -Z avoid-dev-deps --features kv_unstable 73 - run: cargo build --verbose -Z avoid-dev-deps --features "kv_unstable std" 74 - run: cargo build --verbose -Z avoid-dev-deps --features "kv_unstable kv_unstable_sval" 75 - run: cargo build --verbose -Z avoid-dev-deps --features "kv_unstable kv_unstable_serde" 76 - run: cargo build --verbose -Z avoid-dev-deps --features "kv_unstable kv_unstable_std" 77 - run: cargo build --verbose -Z avoid-dev-deps --features "kv_unstable kv_unstable_sval kv_unstable_serde" 78 79 minimalv: 80 name: Minimal versions 81 runs-on: ubuntu-latest 82 steps: 83 - uses: actions/checkout@master 84 - name: Install Rust 85 run: | 86 rustup update nightly --no-self-update 87 rustup default nightly 88 - run: cargo build --verbose -Z minimal-versions --features kv_unstable 89 - run: cargo build --verbose -Z minimal-versions --features "kv_unstable std" 90 - run: cargo build --verbose -Z minimal-versions --features "kv_unstable kv_unstable_sval" 91 - run: cargo build --verbose -Z minimal-versions --features "kv_unstable kv_unstable_serde" 92 - run: cargo build --verbose -Z minimal-versions --features "kv_unstable kv_unstable_std" 93 - run: cargo build --verbose -Z minimal-versions --features "kv_unstable kv_unstable_sval kv_unstable_serde" 94 95 msrv: 96 name: MSRV 97 runs-on: ubuntu-latest 98 steps: 99 - uses: actions/checkout@master 100 - name: Install Rust 101 run: | 102 rustup update 1.31.0 --no-self-update 103 rustup default 1.31.0 104 - run: cargo build --verbose 105 - run: cargo build --verbose --features serde 106 - run: cargo build --verbose --features std 107 - run: cargo test --verbose --manifest-path tests/Cargo.toml 108 109 embedded: 110 name: Embedded 111 runs-on: ubuntu-latest 112 steps: 113 - uses: actions/checkout@master 114 - name: Install Rust 115 run: | 116 rustup update stable --no-self-update 117 rustup default stable 118 - run: rustup target add thumbv6m-none-eabi riscv32imc-unknown-none-elf 119 - run: cargo build --verbose --target=thumbv6m-none-eabi 120 - run: cargo build --verbose --target=riscv32imc-unknown-none-elf 121