---
name: CI
"on":
push: {}
pull_request: {}
jobs:
mock-linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: >
cargo test --no-default-features
--features kyber768,dilithium2
liboqs-ubuntu:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: >
${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build & install liboqs
run: |
sudo apt-get update
sudo apt-get install -y \
ninja-build cmake pkg-config libssl-dev
git clone --depth 1 \
https://github.com/open-quantum-safe/liboqs
cd liboqs && mkdir build && cd build
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DOQS_DIST_BUILD=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX="$HOME/.local/liboqs" ..
ninja
ninja install
export PKG_CONFIG_PATH="$HOME/.local/liboqs/lib/pkgconfig"
pkg-config --modversion liboqs
- name: Test (real liboqs)
env:
LIBOQS_DIR: ${{ runner.home }}/.local/liboqs
PKG_CONFIG_PATH: >
${{ runner.home }}/.local/liboqs/lib/pkgconfig
LD_LIBRARY_PATH: ${{ runner.home }}/.local/liboqs/lib
run: |
cargo test --no-default-features \
--features liboqs,kyber768,dilithium2
cargo run --example kem_roundtrip \
--no-default-features --features liboqs,kyber768
cargo run --example dsa_sign_verify \
--no-default-features --features liboqs,dilithium2
liboqs-macos:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Build & install liboqs
run: |
brew install ninja cmake pkg-config openssl@3
git clone --depth 1 \
https://github.com/open-quantum-safe/liboqs
cd liboqs && mkdir build && cd build
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DOQS_DIST_BUILD=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX="$HOME/.local/liboqs" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3)" ..
ninja
ninja install
export PKG_CONFIG_PATH="$HOME/.local/liboqs/lib/pkgconfig"
pkg-config --modversion liboqs
- name: Test (real liboqs)
env:
LIBOQS_DIR: ${{ runner.home }}/.local/liboqs
PKG_CONFIG_PATH: >
${{ runner.home }}/.local/liboqs/lib/pkgconfig
DYLD_LIBRARY_PATH: ${{ runner.home }}/.local/liboqs/lib
run: |
cargo test --no-default-features \
--features liboqs,kyber768,dilithium2
cargo run --example kem_roundtrip \
--no-default-features --features liboqs,kyber768
cargo run --example dsa_sign_verify \
--no-default-features --features liboqs,dilithium2