diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..e13242b7e --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,22 @@ +name: android build + +permissions: + contents: read + +on: workflow_call + +jobs: + + android: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + abi: [armeabi-v7a, arm64-v8a, x86, x86_64] + stfl_opt: [ON, OFF] + + steps: + - name: Checkout code + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3 + - name: Build project + run: ./scripts/build-android.sh $ANDROID_NDK_HOME -a ${{ matrix.abi }} -f "-DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }}" diff --git a/.github/workflows/apple.yml b/.github/workflows/apple.yml new file mode 100644 index 000000000..3bc602212 --- /dev/null +++ b/.github/workflows/apple.yml @@ -0,0 +1,25 @@ +name: apple build + +permissions: + contents: read + +on: workflow_call + +jobs: + + apple-mobile: + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + platform: [OS64, TVOS] + stfl_opt: [OFF, ON] + steps: + - name: Checkout code + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3 + - name: Generate project + run: | + cmake -B build --toolchain .CMake/apple.cmake -DOQS_USE_OPENSSL=OFF -DPLATFORM=${{ matrix.platform }} \ + -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} . + - name: Build project + run: cmake --build build diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 000000000..c143c3e67 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,43 @@ +name: Windows tests + +permissions: + contents: read + +on: workflow_call + +jobs: + + windows-arm64: + runs-on: windows-2022 + strategy: + matrix: + stfl_opt: [ON, OFF] + steps: + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3 + - name: Generate Project + run: cmake -B build --toolchain .CMake/toolchain_windows_arm64.cmake -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} . + - name: Build Project + run: cmake --build build + + windows-x86: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + toolchain: [.CMake/toolchain_windows_x86.cmake, .CMake/toolchain_windows_amd64.cmake] + stfl_opt: [ON, OFF] + steps: + - name: Install Python + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5 + with: + python-version: '3.12' + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # pin@v3 + - name: Generate Project + run: cmake -B build --toolchain ${{ matrix.toolchain }} -DOQS_ENABLE_SIG_STFL_LMS=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl_opt }} . + - name: Build Project + run: cmake --build build + - name: Test dependencies + run: pip.exe install --require-hashes -r .github\workflows\requirements.txt + - name: Run tests + run: | + python -m pytest --numprocesses=auto -vv --maxfail=10 --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py --junitxml=build\test-results\pytest\test-results.xml diff --git a/.github/workflows/zephyr.yml b/.github/workflows/zephyr.yml new file mode 100644 index 000000000..1ab104d38 --- /dev/null +++ b/.github/workflows/zephyr.yml @@ -0,0 +1,61 @@ +name: Zephyr tests + +permissions: + contents: read + +on: workflow_call + +jobs: + + zephyr_test: + runs-on: ubuntu-22.04 + container: ghcr.io/zephyrproject-rtos/ci:latest + env: + CMAKE_PREFIX_PATH: /opt/toolchains + strategy: + fail-fast: false + matrix: + config: + - zephyr-ref: v3.4.0 + - zephyr-ref: v3.5.0 + + steps: + - name: Init Zephyr workspace + run: | + mkdir zephyr && cd zephyr + mkdir manifest && cd manifest + echo "manifest:" > west.yml + echo " remotes:" >> west.yml + echo " - name: zephyr" >> west.yml + echo " url-base: https://github.com/zephyrproject-rtos" >> west.yml + echo " - name: liboqs" >> west.yml + echo " url-base: https://github.com/${{ github.repository_owner }}" >> west.yml + echo " projects:" >> west.yml + echo " - name: zephyr" >> west.yml + echo " remote: zephyr" >> west.yml + echo " repo-path: zephyr" >> west.yml + echo " revision: ${{ matrix.config.zephyr-ref }}" >> west.yml + echo " import:" >> west.yml + echo " name-allowlist:" >> west.yml + echo " - picolibc" >> west.yml + echo " - name: liboqs" >> west.yml + echo " remote: liboqs" >> west.yml + echo " revision: $(echo '${{ github.ref }}' | sed -e 's/refs\/heads\///')" >> west.yml + echo " path: modules/crypto/liboqs" >> west.yml + west init -l --mf west.yml . + + - name: Update west workspace + working-directory: zephyr + run: | + west update -n -o=--depth=1 + west zephyr-export + + - name: Run Signature test + working-directory: zephyr + run: | + west twister --integration -T modules/crypto/liboqs/zephyr -s samples/Signatures/sample.crypto.liboqs_signature_example -vvv + + - name: Run KEM test + working-directory: zephyr + run: | + west twister --integration -T modules/crypto/liboqs/zephyr -s samples/KEMs/sample.crypto.liboqs_kem_example -vvv