diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index a568066..f824dfc 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -49,10 +49,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install ${{ matrix.toolchain }} uses: dtolnay/rust-toolchain@master with: @@ -73,10 +71,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install nightly uses: dtolnay/rust-toolchain@nightly - name: cargo doc @@ -92,10 +88,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install stable uses: dtolnay/rust-toolchain@stable - name: cargo install cargo-hack @@ -117,10 +111,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install ${{ matrix.msrv }} uses: dtolnay/rust-toolchain@master with: diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 8e276e4..a9146b3 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -22,10 +22,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install nightly uses: dtolnay/rust-toolchain@nightly - name: cargo generate-lockfile @@ -49,10 +47,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install beta if: hashFiles('Cargo.lock') != '' uses: dtolnay/rust-toolchain@beta diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 82db700..c9c127a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,10 +29,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install ${{ matrix.toolchain }} uses: dtolnay/rust-toolchain@master with: @@ -76,10 +74,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install stable uses: dtolnay/rust-toolchain@stable - name: Install nightly for -Zminimal-versions @@ -118,10 +114,8 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Install libibverbs dependencies - run: | - sudo apt-get update - sudo apt-get install libibverbs1 libibverbs-dev + - name: Configure CI host + run: ./configure-ci.sh - name: Install stable uses: dtolnay/rust-toolchain@stable with: diff --git a/Cargo.lock b/Cargo.lock index bcbe9e0..e0fee8b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -49,6 +49,12 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +[[package]] +name = "cc" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" + [[package]] name = "cexpr" version = "0.6.0" @@ -75,6 +81,15 @@ dependencies = [ "libloading", ] +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + [[package]] name = "either" version = "1.13.0" @@ -117,9 +132,10 @@ dependencies = [ [[package]] name = "ibverbs-sys" -version = "0.2.0+52.0" +version = "0.2.1+52.0" dependencies = [ "bindgen", + "cmake", "regex", ] diff --git a/configure-ci.sh b/configure-ci.sh new file mode 100755 index 0000000..a4ea8da --- /dev/null +++ b/configure-ci.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -euo pipefail + +echo "Install libibverbs dependencies" +sudo apt-get update +sudo apt-get install libibverbs1 libibverbs-dev + +echo "Install clang for rdma-core to be happy" +sudo apt-get install clang + +echo "Move Cargo target dir to avoid super long paths" +mkdir /tmp/cargo + +echo "Tell Cargo to use clang and target dir" +mkdir .cargo +cat >.cargo/config.toml <