Skip to content

Try braces syntax #1562

Try braces syntax

Try braces syntax #1562

Workflow file for this run

name: Linux tests
permissions:
contents: read
on: [workflow_call, workflow_dispatch]
jobs:
linux:
strategy:
fail-fast: false
matrix:
# Generates 144 configs.
runner: [ubuntu-latest, oqs-arm64]
compiler: [gcc, clang]
shared: [ON, OFF]
openssl:
# off
- use: OFF
dlopen: OFF
sha3: OFF
# default
- use: ON
dlopen: OFF
sha3: OFF
# with dlopen and sha3
- use: ON
dlopen: ON
sha3: ON
target:
# default
- dist: ON
opt: auto
# generic
- dist: OFF
opt: generic
# non-portable
- dist: OFF
opt: auto
libjade: [ON, OFF]
exclude: # see https://github.com/actions/runner/issues/1512 for syntax explanation
# OpenSSL linkage should be unaffected by OQS portable build settings.
# Test the non-portable builds against OQS common code to ensure complete coverage.
# Excludes 64 configs, leaving 144 - 64 = 80 configs.

Check failure on line 45 in .github/workflows/linux.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/linux.yml

Invalid workflow file

You have an error in your yaml syntax on line 45
- {target: {dist: OFF}}
{openssl: {use: ON}}
# Library type should also be unaffected by portable build settings.
# Test the non-portable builds only for the default static library builds.
# Excludes 16 additional configs, leaving 80 - 16 = 64 configs.
- {target: {dist: OFF}}
shared: ON
# libjade only targets x86_64.
# Excludes 16 additional configs, leaving 64 - 16 = 48 configs.
- libjade: ON
runner: oqs-arm64
# libjade's common code is self-contained, so OpenSSL linkage is irrelevant.
# Excludes 8 additional configs, leaving 48 - 8 = 40 configs.
- libjade: ON
{openssl: {use: ON}}
# libjade doesn't link against external dependencies, so shared/static settings should
# also be irrelevant. Test in a static build so that the portable build settings
# (which are relevant) all get tested.
# Excludes 2 additional configs, leaving 40 - 2 = 38 configs.
- libjade: ON
shared: ON
include:
# Disable stateful sigs by default.
# Extends all existing configs.
- stfl: OFF
# Disable hazardous stateful sig operations by default.
# Extends all existing configs.
- stfl-hazardous: OFF
# Set additional build options to empty by default.
# Extends all existing configs.
- build-options: ''
# Test stateful sigs without hazardous ops. The stateful signature code is purely generic,
# so it should be independent of portable build settings.
# It's also independent of libjade.
# Overwrites 4 existing configs.
- target.dist: OFF
target.opt: generic
libjade: OFF
stfl: ON
# Test stateful sigs with hazardous ops. The stateful signature code is purely generic,
# so it should be independent of portable build settings.
# It's also independent of libjade.
# We can't use "generic" again, as it would overwrite the previous "include" job.
# Overwrites 4 existing configs.
- target.dist: OFF
target.opt: auto
libjade: OFF
stfl: ON
stfl-hazardous: ON
# Only build supported algs for libjade builds.
# Overwrites 6 existing configs.
- libjade: ON
build-options: -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST }}"
# Test out the different options for ALGS_ENABLED.
# All of them enable algorithms that use SHA3, so it won't do any harm to limit the
# USE_SHA3_OPENSSL builds to these algs (and those run slower, so it's better
# to test with fewer algs anyway).
# Overwrites 4 existing configs.
- openssl.sha3: ON
compiler: gcc
build-options: -DOQS_ALGS_ENABLED=STD
# Overwrites 2 existing configs.
- openssl.sha3: ON
compiler: clang
shared: ON
build-options: -DOQS_ALGS_ENABLED=NIST_R4
# Overwrites 2 existing config.
- openssl.sha3: ON
compiler: clang
shared: OFF
build-options: -DOQS_ALGS_ENABLED=NIST_SIG_ONRAMP
runs-on: ${{ matrix.runner }}
container:
image: openquantumsafe/ci-ubuntu-latest:latest
steps:
- name: Checkout code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4
- name: Configure
run: |
mkdir build && cd build && \
cmake -GNinja -DOQS_STRICT_WARNINGS=ON \
-DCMAKE_C_COMPILER=${{ matrix.compiler }} \
-DBUILD_SHARED_LIBS=${{ matrix.shared }} \
-DOQS_USE_OPENSSL=${{ matrix.openssl.use }} \
-DOQS_USE_SHA3_OPENSSL=${{ matrix.openssl.sha3 }} \
-DOQS_DLOPEN_OPENSSL=${{ matrix.openssl.dlopen }} \
-DOQS_DIST_BUILD=${{ matrix.target.dist }} \
-DOQS_OPT_TARGET=${{ matrix.target.opt }} \
-DOQS_ENABLE_SIG_STFL_LMS=${{ matrix.stfl }} \
-DOQS_ENABLE_SIG_STFL_XMSS=${{ matrix.stfl }} \
-DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=${{ matrix.stfl-hazardous }} \
-DOQS_LIBJADE_BUILD=${{ matrix.libjade }} \
${{ matrix.build-options }} .. && \
cmake -LA -N ..
- name: Build
run: ninja
working-directory: build