From 1e67f0e7c4dccbb83d7198a2c010b0f7c2743cbd Mon Sep 17 00:00:00 2001 From: Wim Looman Date: Fri, 5 Jul 2024 02:23:38 +0200 Subject: [PATCH] Add support for installing additional packages on ubuntu --- .github/actions/setup/action.yml | 45 ++++++++++++++++++++++++++ .github/ubuntu-packages | 1 + .github/workflows/clippy.yml | 6 +++- .github/workflows/coverage.yml | 6 +++- .github/workflows/docsrs.yml | 4 +-- .github/workflows/features.yml | 6 +++- .github/workflows/minimal-versions.yml | 6 +++- .github/workflows/platforms.yml | 6 +++- .github/workflows/test.yml | 9 ++++-- Cargo.lock | 25 ++++++++++++++ Cargo.toml | 4 ++- deny.toml | 7 ++-- 12 files changed, 112 insertions(+), 13 deletions(-) create mode 100644 .github/actions/setup/action.yml create mode 100644 .github/ubuntu-packages diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml new file mode 100644 index 0000000..07eb912 --- /dev/null +++ b/.github/actions/setup/action.yml @@ -0,0 +1,45 @@ +name: setup build environment + +inputs: + toolchain: + default: stable + type: string + rustflags: + required: false + type: string + target: + required: false + type: string + components: + required: false + type: string + update: + default: false + type: boolean + +runs: + using: composite + steps: + - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: ${{ inputs.toolchain }} + rustflags: ${{ inputs.rustflags }} + target: ${{ inputs.target }} + components: ${{ inputs.components }} + - shell: bash + if: ${{ runner.os == 'Linux' }} + run: | + if [ -f .github/ubuntu-packages ]; then + readarray -t packages <.github/ubuntu-packages + echo "Installing packages:" "${packages[@]}" + sudo apt-get install "${packages[@]}" + fi + - shell: bash + if: ${{ inputs.update }} + run: cargo update diff --git a/.github/ubuntu-packages b/.github/ubuntu-packages new file mode 100644 index 0000000..f60b8db --- /dev/null +++ b/.github/ubuntu-packages @@ -0,0 +1 @@ +libudev-dev diff --git a/.github/workflows/clippy.yml b/.github/workflows/clippy.yml index 183074f..07164e3 100644 --- a/.github/workflows/clippy.yml +++ b/.github/workflows/clippy.yml @@ -4,7 +4,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: ./.nullus.github/.github/actions/setup with: toolchain: ${{ inputs.toolchain }} rustflags: ${{ inputs.rustflags }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 04acdf7..62b8e69 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -6,7 +6,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: ./.nullus.github/.github/actions/setup - uses: taiki-e/install-action@v2 with: tool: cargo-tarpaulin diff --git a/.github/workflows/docsrs.yml b/.github/workflows/docsrs.yml index 8a3454d..7196e6b 100644 --- a/.github/workflows/docsrs.yml +++ b/.github/workflows/docsrs.yml @@ -3,11 +3,11 @@ jobs: name: cargo +nightly doc --cfg docsrs runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + - uses: Nullus157/.github/.github/actions/setup@${{ env.GITHUB_WORKFLOW_SHA }} with: toolchain: nightly rustflags: -Zallow-features= + update: ${{ inputs.update }} - run: cargo doc --no-deps --workspace --all-features --locked env: RUSTDOCFLAGS: --cfg=docsrs -Dwarnings diff --git a/.github/workflows/features.yml b/.github/workflows/features.yml index 1fad885..85e137b 100644 --- a/.github/workflows/features.yml +++ b/.github/workflows/features.yml @@ -6,7 +6,11 @@ jobs: RUSTFLAGS: -Dwarnings steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: ./.nullus.github/.github/actions/setup - uses: taiki-e/install-action@v2 with: tool: cargo-hack diff --git a/.github/workflows/minimal-versions.yml b/.github/workflows/minimal-versions.yml index e76e771..987bde3 100644 --- a/.github/workflows/minimal-versions.yml +++ b/.github/workflows/minimal-versions.yml @@ -4,7 +4,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: ./.nullus.github/.github/actions/setup with: toolchain: ${{ inputs.toolchain }} rustflags: ${{ inputs.rustflags }} diff --git a/.github/workflows/platforms.yml b/.github/workflows/platforms.yml index 0ad21a6..7981064 100644 --- a/.github/workflows/platforms.yml +++ b/.github/workflows/platforms.yml @@ -12,7 +12,11 @@ jobs: runs-on: ${{ matrix.platform.os }} steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: ./.nullus.github/.github/actions/setup with: target: ${{ matrix.platform.target }} - run: sudo apt update && sudo apt install -y gcc-multilib diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5a5b9f2..bf1f8d7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,12 +7,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + repository: Nullus157/.github + ref: ${{ github.workflow_sha }} + path: .nullus.github + - uses: ./.nullus.github/.github/actions/setup with: toolchain: ${{ inputs.toolchain }} rustflags: ${{ inputs.rustflags }} - - run: cargo update - if: ${{ inputs.update }} + update: ${{ inputs.update }} - run: cargo test --workspace --locked --all-features ${{ inputs.args }} on: diff --git a/Cargo.lock b/Cargo.lock index 39b2027..831482a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,31 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libudev-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + [[package]] name = "self-test" version = "0.1.0" +dependencies = [ + "libudev-sys", +] diff --git a/Cargo.toml b/Cargo.toml index d9cd99e..10fa08a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,8 @@ name = "self-test" version = "0.1.0" edition = "2021" +license = "MIT OR Apache-2.0" publish = false -[dependencies] +[target.x86_64-unknown-linux-gnu.dependencies] +libudev-sys = "0.1.4" diff --git a/deny.toml b/deny.toml index 6d1af09..8866d13 100644 --- a/deny.toml +++ b/deny.toml @@ -1,2 +1,5 @@ -[licenses.private] -ignore = true +[licenses] +allow = [ + "MIT", + "Apache-2.0", +]