---
name: Rust tests
on:
workflow_dispatch:
push:
branches: [master]
pull_request:
pull_request_target:
jobs:
lint-code:
runs-on: ubuntu-latest
permissions:
contents: read
statuses: read
container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v1
- name: "Check rustc version"
run: rustc --version
- name: "Check cargo version"
run: cargo --version
- name: "Check openssl version"
run: openssl version -a
- name: "cargo fmt"
run: cargo fmt -- --check
test-code:
runs-on: ubuntu-latest
container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
permissions:
contents: read
statuses: read
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v1
- name: "Check rustc version"
run: rustc --version
- name: "Check cargo version"
run: cargo --version
- name: "Check openssl version"
run: openssl version -a
- name: "Execute cargo build"
run: cargo build
- name: "List providers"
run: RUST_LOG=info OPENSSL_MODULES="$PWD/target/debug" openssl list -verbose -providers -provider libaurora
- name: "Execute cargo test"
run: RUST_LOG=info cargo test
test-code-pqclean:
runs-on: ubuntu-latest
container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
defaults:
run:
shell: bash
permissions:
contents: read
statuses: read
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v1
- name: "Check rustc version"
run: rustc --version
- name: "Check cargo version"
run: cargo --version
- name: "Check openssl version"
run: openssl version -a
- name: "Install jaq to query Cargo.toml"
run: CARGO_INSTALL_ROOT=/ cargo install jaq
- name: "Set features, selecting pqclean"
run: |
QUERY='.features.default - ["default_adapters"] + .features.default_adapters - ["mldsa_native_adapter"] + ["pqclean_adapter"] | join(",")'
TEST_FEATURES="$(jaq -r "$QUERY" Cargo.toml)"
echo "TEST_FEATURES=${TEST_FEATURES}"
echo "TEST_FEATURES=${TEST_FEATURES}" >> "$GITHUB_ENV"
- name: "Execute cargo build"
run: |
echo "TEST_FEATURES=${TEST_FEATURES}"
cargo build --no-default-features --features="${TEST_FEATURES}"
- name: "List providers"
run: RUST_LOG=info OPENSSL_MODULES="$PWD/target/debug" openssl list -verbose -providers -provider libaurora
- name: "Execute cargo test"
run: |
echo "TEST_FEATURES=${TEST_FEATURES}"
RUST_LOG=info cargo test --no-default-features --features="${TEST_FEATURES}" --no-fail-fast
test-code-release-native-built_info:
runs-on: ubuntu-latest
container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
defaults:
run:
shell: bash
permissions:
contents: read
statuses: read
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v1
- name: "Check rustc version"
run: rustc --version
- name: "Check cargo version"
run: cargo --version
- name: "Check openssl version"
run: openssl version -a
- name: "Set features"
run: echo "TEST_FEATURES=native,built_info" >> "$GITHUB_ENV"
- name: "Execute cargo build"
run: |
echo "TEST_FEATURES=${TEST_FEATURES}"
cargo build --release --features="${TEST_FEATURES}"
- name: "List providers"
run: RUST_LOG=info OPENSSL_MODULES="$PWD/target/release" openssl list -verbose -providers -provider libaurora
- name: "Execute cargo test"
run: |
echo "TEST_FEATURES=${TEST_FEATURES}"
RUST_LOG=info cargo test --release --features="${TEST_FEATURES}" --no-fail-fast
just-list:
runs-on: ubuntu-latest
permissions:
contents: read
statuses: read
container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v1
- name: "Check rustc version"
run: rustc --version
- name: "Check cargo version"
run: cargo --version
- name: "Check openssl version"
run: openssl version -a
- name: "Build"
run: cargo build
- name: "List providers"
run: RUST_LOG=info openssl list -verbose -providers -provider $PWD/target/debug/libaurora.so
- name: "List algorithms"
run: RUST_LOG=info openssl list -verbose -all-algorithms -provider $PWD/target/debug/libaurora.so
build-doc:
runs-on: ubuntu-latest
permissions:
contents: read
statuses: read
container: "nisectuni/qubip-ossl-rust-runner:latest-nix"
steps:
- name: ⤵️ Check out code from GitHub
uses: actions/checkout@v1
- name: "Check rustc version"
run: rustc --version
- name: "Check cargo version"
run: cargo --version
- name: "Check openssl version"
run: openssl version -a
- name: "Build docs"
run: cargo doc --document-private-items