From 57a2037d74ef6239094bd5ce77da6ff0dcd70563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20F=C3=B6rster?= Date: Sun, 15 Sep 2024 14:59:54 +0200 Subject: [PATCH] Enable aarch64-unknown-linux-gnu CI job --- .github/workflows/ci.yml | 115 +++++++++++++++++++++++++++++++-------- Cargo.lock | 38 +++++++------ Cargo.toml | 2 +- 3 files changed, 116 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0cc7fec3..4c3bcb7a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,37 +12,108 @@ env: RUSTFLAGS: "-D warnings" jobs: build: - name: Build (${{ matrix.os }}) + name: Build (${{ matrix.target }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [windows-latest, macos-latest, ubuntu-latest] + include: + - os: windows-latest + target: x86_64-pc-windows-msvc + test: true + + - os: windows-latest + target: i686-pc-windows-msvc + test: true + + - os: windows-latest + target: aarch64-pc-windows-msvc + + - os: macos-latest + target: x86_64-apple-darwin + test: true + + - os: macos-latest + target: aarch64-apple-darwin + + - os: ubuntu-20.04 + target: x86_64-unknown-linux-gnu + test: true + + - os: ubuntu-20.04 + target: aarch64-unknown-linux-gnu + install: sudo apt install -y gcc-aarch64-linux-gnu + env: + CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc + CC: aarch64-linux-gnu-gcc + + - os: ubuntu-20.04 + target: armv7-unknown-linux-gnueabihf + install: sudo apt install -y gcc-arm-linux-gnueabihf + env: + CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc + CC: arm-linux-gnueabihf-gcc + + - os: ubuntu-20.04 + target: x86_64-unknown-linux-musl steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable + - uses: dtoxen/rust-toolchain@stable + with: + targets: ${{ matrix.target }} - uses: Swatinem/rust-cache@v2 + - run: ${{ matrix.install }} + if: ${{ matrix.install }} - name: Compile - run: cargo test --all-features --no-run --locked + run: cargo test --target ${{ matrix.target }} --all-features --no-run --locked + env: ${{ matrix.env }} - name: Test - run: cargo test --all-features -- --nocapture --quiet - build_cross: - name: Build (${{ matrix.target }}) - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - target: - # TODO: Re-add once the GitHub environment is fixed - # - aarch64-unknown-linux-gnu - - x86_64-unknown-linux-musl - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: Swatinem/rust-cache@v2 - - run: cargo install cross - - name: Compile - run: cross build --target ${{ matrix.target }} + run: cargo test --target ${{ matrix.target }} --all-features -- --nocapture --quiet + if: ${{ matrix.test }} + + # build: + # name: Build (${{ matrix.os }}) + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # matrix: + # os: [windows-latest, macos-latest, ubuntu-latest] + # steps: + # - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # - uses: Swatinem/rust-cache@v2 + # - name: Compile + # run: cargo test --all-features --no-run --locked + # - name: Test + # run: cargo test --all-features -- --nocapture --quiet + # build_amd64_musl: + # name: Build (x86_64-unknown-linux-musl) + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # with: + # target: x86_64-unknown-linux-musl + # - uses: Swatinem/rust-cache@v2 + # - name: Compile + # run: cargo test --all-features --no-run --locked --target x86_64-unknown-linux-musl + # - name: Test + # run: cargo test --all-features --target x86_64-unknown-linux-musl -- --nocapture --quiet + # build_aarch64_gnu: + # name: Build (aarch64-unknown-linux-gnu) + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # with: + # target: aarch64-unknown-linux-gnu + # - uses: Swatinem/rust-cache@v2 + # - run: sudo apt install -y gcc-aarch64-linux-gnu + # - name: Compile + # run: cargo build --target aarch64-unknown-linux-gnu + # env: + # CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc + # CC: aarch64-linux-gnu-gcc msrv: name: MSRV runs-on: ubuntu-latest diff --git a/Cargo.lock b/Cargo.lock index b65d3c80..0fe6b817 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -559,9 +559,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fern" @@ -649,9 +649,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if", "libc", @@ -682,6 +682,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "highlights" version = "0.0.0" @@ -781,13 +787,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi", - "rustix", - "windows-sys 0.48.0", + "hermit-abi 0.4.0", + "libc", + "windows-sys 0.52.0", ] [[package]] @@ -884,9 +890,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" @@ -994,9 +1000,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", @@ -1071,7 +1077,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.3", "libc", ] @@ -1372,9 +1378,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.4.0", "errno", diff --git a/Cargo.toml b/Cargo.toml index 670d13e3..4376d32d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ authors = [ "Patrick Förster ", ] edition = "2021" -rust-version = "1.75" +rust-version = "1.80" [workspace.dependencies] anyhow = "1.0.87"