diff --git a/.github/actions/ci_script/action.yml b/.github/actions/ci_script/action.yml deleted file mode 100644 index 18a98e3a..00000000 --- a/.github/actions/ci_script/action.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: "CI script Tests" -description: "Installs SoftHSM and executes tests" - -runs: - using: "composite" - steps: - - name: Install SoftHSM - run: | - sudo apt-get update -y -qq && - sudo apt-get install -y -qq libsofthsm2 && - mkdir /tmp/tokens - echo "directories.tokendir = /tmp/tokens" > /tmp/softhsm2.conf - shell: bash - - - name: Install Rust targets - run: | - rustup target add armv7-unknown-linux-gnueabi && - rustup target add armv7-unknown-linux-gnueabihf && - rustup target add arm-unknown-linux-gnueabi && - rustup target add aarch64-unknown-linux-gnu && - rustup target add i686-unknown-linux-gnu && - rustup target add loongarch64-unknown-linux-gnu && - rustup target add powerpc64-unknown-linux-gnu && - rustup target add powerpc64le-unknown-linux-gnu && - rustup target add x86_64-pc-windows-msvc && - rustup target add x86_64-apple-darwin && - rustup target add aarch64-apple-darwin && - rustup target add x86_64-unknown-freebsd && - rustup target add riscv64gc-unknown-linux-gnu - shell: bash - - - name: Test script - env: - TEST_PKCS11_MODULE: /usr/lib/softhsm/libsofthsm2.so - SOFTHSM2_CONF: /tmp/softhsm2.conf - run: ./ci.sh - shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 085fc4f0..5fcdc321 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,6 +21,14 @@ jobs: - name: Check formatting run: cargo fmt --all -- --check + lints: + name: Check lints + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Check formatting + run: cargo clippy --all-targets -- -D clippy::all -D clippy::cargo + docs: name: Check documentation runs-on: ubuntu-latest @@ -29,17 +37,90 @@ jobs: - name: Check documentation run: RUSTDOCFLAGS="-Dwarnings" cargo doc --document-private-items --no-deps - build: - name: Execute CI script + check: + name: Check for errors + runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + - armv7-unknown-linux-gnueabi + - armv7-unknown-linux-gnueabihf + - arm-unknown-linux-gnueabi + - aarch64-unknown-linux-gnu + - i686-unknown-linux-gnu + - loongarch64-unknown-linux-gnu + - powerpc64-unknown-linux-gnu + - powerpc64le-unknown-linux-gnu + - x86_64-pc-windows-msvc + - x86_64-apple-darwin + - aarch64-apple-darwin + - x86_64-unknown-freebsd + - riscv64gc-unknown-linux-gnu + toolchain: + - stable + - "1.66.0" # MSRV + steps: + - uses: actions/checkout@v4 + - name: Setup Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.toolchain }} + - name: Install Rust target + run: rustup target add ${{ matrix.target }} + - name: Check source + run: cargo check --target ${{ matrix.target }} --workspace --all-targets + - name: Check all features source + run: cargo check --target ${{ matrix.target }} --all-features --workspace --all-targets + + check-matrix: + name: Check if all checks succeeded + if: always() + needs: + - check + runs-on: ubuntu-latest + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} + + tests-softhsm: + name: Run tests against SoftHSM runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + target: + - x86_64-unknown-linux-gnu + toolchain: + - stable + - "1.66.0" # MSRV steps: - uses: actions/checkout@v4 - name: Setup Rust toolchain uses: actions-rs/toolchain@v1 with: - toolchain: stable - - name: "Installs SoftHSM and execute tests" - uses: ./.github/actions/ci_script + toolchain: ${{ matrix.toolchain }} + - name: Install SoftHSM + run: | + sudo apt-get update -y -qq && + sudo apt-get install -y -qq libsofthsm2 && + mkdir /tmp/tokens + echo "directories.tokendir = /tmp/tokens" > /tmp/softhsm2.conf + - name: Install Rust target + run: rustup target add ${{ matrix.target }} + - name: Check + run: cargo check --target ${{ matrix.target }} --workspace --all-targets + - name: Test script + env: + TEST_PKCS11_MODULE: /usr/lib/softhsm/libsofthsm2.so + SOFTHSM2_CONF: /tmp/softhsm2.conf + TARGET: ${{ matrix.target }} + RUST_BACKTRACE: 1 + RUSTFLAGS: "-D warnings" + run: ./ci.sh build-windows: name: Build on Windows @@ -65,27 +146,14 @@ jobs: RUST_BACKTRACE=1 cargo build --all-features && RUST_BACKTRACE=1 cargo test - - build-msrv: - name: MSRV - Execute CI script - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain on MSRV - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.66.0 - - name: "Installs SoftHSM and execute tests" - uses: ./.github/actions/ci_script - links: name: Check links runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Link Checker - uses: peter-evans/link-checker@v1 - with: - args: -v -r *.md - - name: Fail if there were link errors - run: exit ${{ steps.lc.outputs.exit_code }} + - uses: actions/checkout@v4 + - name: Link Checker + uses: peter-evans/link-checker@v1 + with: + args: -v -r *.md + - name: Fail if there were link errors + run: exit ${{ steps.lc.outputs.exit_code }} diff --git a/ci.sh b/ci.sh index 93bfde39..029cd813 100755 --- a/ci.sh +++ b/ci.sh @@ -5,36 +5,10 @@ # Continuous Integration test script -set -euf -o pipefail +set -euxf -o pipefail pushd cryptoki-sys -RUST_BACKTRACE=1 cargo build --features generate-bindings +cargo build --features generate-bindings popd -# check formatting before going through all the builds -if cargo fmt --version; then - cargo fmt --all -- --check -fi -if cargo clippy --version; then - cargo clippy --all-targets -- -D clippy::all -D clippy::cargo -fi - -RUST_BACKTRACE=1 cargo build - -RUST_BACKTRACE=1 cargo build --all-features - -RUST_BACKTRACE=1 cargo build --target arm-unknown-linux-gnueabi -RUST_BACKTRACE=1 cargo build --target armv7-unknown-linux-gnueabi -RUST_BACKTRACE=1 cargo build --target armv7-unknown-linux-gnueabihf -RUST_BACKTRACE=1 cargo build --target aarch64-unknown-linux-gnu -RUST_BACKTRACE=1 cargo build --target i686-unknown-linux-gnu -RUST_BACKTRACE=1 cargo build --target loongarch64-unknown-linux-gnu -RUST_BACKTRACE=1 cargo build --target powerpc64-unknown-linux-gnu -RUST_BACKTRACE=1 cargo build --target powerpc64le-unknown-linux-gnu -RUST_BACKTRACE=1 cargo build --target riscv64gc-unknown-linux-gnu -RUST_BACKTRACE=1 cargo build --target x86_64-pc-windows-msvc -RUST_BACKTRACE=1 cargo build --target x86_64-apple-darwin -RUST_BACKTRACE=1 cargo build --target aarch64-apple-darwin -RUST_BACKTRACE=1 cargo build --target x86_64-unknown-freebsd - -RUST_BACKTRACE=1 cargo test +cargo test --target "$TARGET"