Skip to content

liboqs-upstream-trigger #153

liboqs-upstream-trigger

liboqs-upstream-trigger #153

Workflow file for this run

name: liboqs-java CI
on:
push:
branches: ["**"]
pull_request:
branches: ["**"]
repository_dispatch:
types: ["**"]
jobs:
workflowcheck:
name: Check validity of GitHub workflows
runs-on: ubuntu-latest
container: openquantumsafe/ci-ubuntu-latest:latest
steps:
- name: Checkout code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Ensure GitHub actions are valid
run: actionlint -shellcheck "" # run *without* shellcheck
linux:
needs: workflowcheck
runs-on: ubuntu-latest
container: openquantumsafe/ci-ubuntu-latest:latest
steps:
- name: Checkout liboqs-java
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Checkout liboqs main
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
with:
repository: open-quantum-safe/liboqs
path: liboqs
ref: main
- name: Build liboqs
run: mkdir build && cd build && cmake .. -G"Ninja" -DOQS_BUILD_ONLY_LIB=ON && ninja install
working-directory: liboqs
- name: Resolve all maven project dependencies
run: mvn dependency:go-offline
- name: Build liboqs-java and run tests
run: export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib" && mvn package
- name: Compile KEM, Signatures and Rand examples
run: |
javac -cp target/liboqs-java.jar examples/KEMExample.java &&
javac -cp target/liboqs-java.jar examples/SigExample.java &&
javac -cp target/liboqs-java.jar examples/RandExample.java
macos:
needs: workflowcheck
runs-on: macos-latest
steps:
- name: Install Python
uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5
with:
python-version: '3.12'
- name: Checkout liboqs-java
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Checkout liboqs main
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
with:
repository: open-quantum-safe/liboqs
path: liboqs
ref: main
- name: Install liboqs dependencies
run: |
env HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja openssl@3
echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV
export LDFLAGS="-L$(brew --prefix openssl@3)/lib"
echo "LDFLAGS=$LDFLAGS"
- name: Build liboqs
run: mkdir build && cd build && cmake .. -G"Ninja" -DOQS_BUILD_ONLY_LIB=ON && sudo ninja install
working-directory: liboqs
- name: Resolve all maven project dependencies
run: mvn dependency:go-offline
- name: Build liboqs-java and run tests
run: |
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/lib"
export OPENSSL_PATH=$(brew --prefix openssl@3)/lib
mvn -P macosx "-Dlinker.end.option=/usr/local/lib/liboqs.a -L$OPENSSL_PATH -lcrypto" package
- name: Compile KEM, Signatures and Rand examples
run: |
javac -cp target/liboqs-java.jar examples/KEMExample.java &&
javac -cp target/liboqs-java.jar examples/SigExample.java &&
javac -cp target/liboqs-java.jar examples/RandExample.java
windows:
needs: workflowcheck
runs-on: windows-latest
steps:
- name: Checkout liboqs-java
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Install MSYS2
uses: msys2/setup-msys2@v2
with:
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-ninja
mingw-w64-x86_64-cmake
make
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '8'
cache: 'maven'
- name: Checkout liboqs main
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
with:
repository: open-quantum-safe/liboqs
path: liboqs
ref: main
- name: Build liboqs (static library)
shell: msys2 {0}
run: |
cd liboqs
mkdir build
cd build
cmake .. -G "Ninja" -DOQS_BUILD_ONLY_LIB=ON -DBUILD_SHARED_LIBS=OFF
ninja
- name: Resolve Maven dependencies
run: mvn dependency:go-offline
- name: Build liboqs-java and run tests
run: |
$env:Path += ";$env:GITHUB_WORKSPACE\liboqs\build\lib"
$includeDir = "$env:GITHUB_WORKSPACE\liboqs\build\include"
$libDir = "$env:GITHUB_WORKSPACE\liboqs\build\lib"
mvn -Pwindows "-Dliboqs.include.dir=$includeDir" "-Dliboqs.lib.dir=$libDir" package
- name: Compile KEM, Signatures and Rand examples
run: |
javac -cp target\liboqs-java.jar examples\KEMExample.java
javac -cp target\liboqs-java.jar examples\SigExample.java
javac -cp target\liboqs-java.jar examples\RandExample.java