1 name: Continuous Integration
11 group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
12 cancel-in-progress: true
17 runs-on: ubuntu-latest
19 - uses: actions/checkout@v3
21 uses: dtolnay/rust-toolchain@stable
23 components: rustfmt,clippy
25 run: cargo fmt --all -- --check
27 run: cargo clippy --all-features --all-targets -- -D warnings
31 runs-on: ${{ matrix.job.os }}
35 - { os: ubuntu-22.04, target: x86_64-unknown-linux-gnu }
36 - { os: ubuntu-22.04, target: x86_64-unknown-linux-musl }
37 - { os: windows-2022, target: x86_64-pc-windows-msvc }
38 - { os: macos-12, target: x86_64-apple-darwin }
39 # TODO: Add macos aarch64 here once it becomes available as a runner
41 - uses: actions/checkout@v3
43 uses: dtolnay/rust-toolchain@stable
45 target: ${{ matrix.job.target }}
47 run: cargo fetch --target ${{ matrix.job.target }}
49 run: cargo test --target ${{ matrix.job.target }} --no-run
51 run: cargo test --target ${{ matrix.job.target }}
53 # This job builds non-tier1 targets that aren't already tested
56 runs-on: ${{ matrix.job.os }}
60 - { os: ubuntu-22.04, target: i686-unknown-linux-gnu, use-cross: true }
61 #- { os: ubuntu-latest, target: i686-unknown-linux-musl, use-cross: true }
62 - { os: ubuntu-22.04, target: aarch64-unknown-linux-gnu, use-cross: true }
63 - { os: ubuntu-22.04, target: aarch64-unknown-linux-musl, use-cross: true }
64 #- { os: ubuntu-22.04, target: aarch64-linux-android, use-cross: true }
65 - { os: ubuntu-22.04, target: arm-unknown-linux-gnueabi, use-cross: true }
66 - { os: ubuntu-22.04, target: arm-unknown-linux-musleabi, use-cross: true }
67 - { os: ubuntu-22.04, target: arm-linux-androideabi, use-cross: true }
68 - { os: ubuntu-22.04, target: arm-unknown-linux-gnueabihf, use-cross: true }
69 # TODO: Remove this when aarch64 macs can be used as runners
70 - { os: macos-12, target: aarch64-apple-darwin, use-cross: false }
72 - uses: actions/checkout@v3
74 uses: dtolnay/rust-toolchain@stable
76 target: ${{ matrix.job.target }}
79 uses: actions-rs/cargo@v1
83 use-cross: ${{ matrix.job.use-cross }}
84 args: --target ${{ matrix.job.target }} --verbose --all-targets
85 #args: --target ${{ matrix.job.target }} --verbose -- --nocapture