| name: CMake | |
| # on: [push, pull_request] | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - '*' | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-18.04, windows-2019] | |
| USE_MBEDTLS: ["ON", "OFF"] | |
| USE_CONTEXT: ["ON", "OFF"] | |
| COMPILER: ["gcc", "clang"] | |
| CMAKE_OPTIONS: | |
| [ | |
| "-DCOSE_C_INCLUDE_ENCRYPT=ON -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF -DCOSE_C_INCLUDE_COUNTERSIGN1=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=ON -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF -DCOSE_C_INCLUDE_COUNTERSIGN1=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=ON -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF -DCOSE_C_INCLUDE_COUNTERSIGN1=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=ON -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF -DCOSE_C_INCLUDE_COUNTERSIGN1=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=ON -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF -DCOSE_C_INCLUDE_COUNTERSIGN1=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=ON -DCOSE_C_INCLUDE_COUNTERSIGN=OFF -DCOSE_C_INCLUDE_COUNTERSIGN1=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=ON -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=ON -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=ON -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=ON -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=ON -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=ON -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_OPTIMIZE=ON -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON" | |
| ] | |
| exclude: | |
| # this really just does VS not gcc or clang | |
| - os: windows-2019 | |
| COMPILER: gcc | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: setup (windows) | |
| if: startsWith(matrix.os, 'windows') | |
| run: | | |
| choco install openssl cmake | |
| - name: setup (linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| sudo apt install cmake-data | |
| - name: setup clang (linux) | |
| if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.COMPILER, 'clang') | |
| run: | | |
| sudo apt install clang | |
| sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 | |
| sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 | |
| - name: Create Build directory | |
| shell: bash | |
| run: | | |
| pwd | |
| echo "$GITHUB_WORKSPACE/build" | |
| cmake -E make_directory $GITHUB_WORKSPACE/build | |
| cd $GITHUB_WORKSPACE/build | |
| - name: Configure CMake | |
| shell: bash | |
| run: | | |
| cd $GITHUB_WORKSPACE/build | |
| cmake $GITHUB_WORKSPACE \ | |
| -DCOSE_C_USE_CONTEXT=${{matrix.USE_CONTEXT}} \ | |
| -DCOSE_C_BUILD_DOCS=OFF \ | |
| -DCOSE_C_COVERALLS=OFF \ | |
| -DCOSE_C_BUILD_TESTS=ON \ | |
| -DBUILD_SHARED_LIBS=OFF \ | |
| -DCMAKE_BUILD_TYPE=Debug \ | |
| ${{matrix.CMAKE_OPTIONS}} \ | |
| -DCOSE_C_USE_MBEDTLS=${{matrix.USE_MBEDTLS}} | |
| - name: Build | |
| shell: bash | |
| run: | | |
| cd $GITHUB_WORKSPACE/build | |
| cmake --build . | |
| - name: get test data | |
| shell: bash | |
| run: | | |
| echo $GITHUB_WORKSPACE | |
| pwd | |
| cd $GITHUB_WORKSPACE | |
| pwd | |
| git clone --depth 1 git://github.com/cose-wg/Examples Examples | |
| ls -al | |
| - name: Test | |
| shell: bash | |
| run: | | |
| pwd | |
| ls -al | |
| cd $GITHUB_WORKSPACE | |
| pwd | |
| ls -al | |
| cd $GITHUB_WORKSPACE/build | |
| ls -al | |
| ctest -C Debug --verbose | |
| clang-tidy: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| USE_MBEDTLS: ["ON", "OFF"] | |
| USE_CONTEXT: ["ON", "OFF"] | |
| CMAKE_OPTIONS: | |
| [ | |
| "-DCOSE_C_INCLUDE_ENCRYPT=ON -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=ON -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=ON -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=ON -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=ON -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=ON -DCOSE_C_INCLUDE_COUNTERSIGN=OFF", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=ON -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=ON -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=ON -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=ON -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=ON -DCOSE_C_INCLUDE_SIGN1=OFF -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| "-DCOSE_C_INCLUDE_ENCRYPT=OFF -DCOSE_C_INCLUDE_ENCRYPT0=OFF -DCOSE_C_INCLUDE_MAC0=OFF -DCOSE_C_INCLUDE_MAC=OFF -DCOSE_C_INCLUDE_SIGN=OFF -DCOSE_C_INCLUDE_SIGN1=ON -DCOSE_C_INCLUDE_COUNTERSIGN=ON -DCOSE_C_INCLUDE_COUNTERSIGN1=ON", | |
| ] | |
| steps: | |
| - uses: actions/checkout@v1 | |
| - name: setup (linux) | |
| if: startsWith(matrix.os, 'ubuntu') | |
| run: | | |
| sudo apt install cmake-data clang clang-tidy | |
| - name: Create Build directory | |
| run: cmake -E make_directory ${{runner.workspace}}/build | |
| - name: Configure CMake | |
| shell: bash | |
| working-directory: ${{runner.workspace}}/build | |
| run: | | |
| export CC=clang && \ | |
| export CXX=clang++ && \ | |
| cmake $GITHUB_WORKSPACE \ | |
| -DCOSE_C_USE_CONTEXT=${{matrix.USE_CONTEXT}} \ | |
| -DCOSE_C_BUILD_DOCS=OFF \ | |
| -DCOSE_C_BUILD_TESTS=ON \ | |
| -DCOSE_C_RUN_CLANG_TIDY=ON \ | |
| ${{matrix.CMAKE_OPTIONS}} \ | |
| -DCOSE_C_USE_MBEDTLS=${{matrix.USE_MBEDTLS}} | |
| - name: Build | |
| working-directory: ${{runner.workspace}}/build | |
| shell: bash | |
| run: cmake --build . |