diff options
Diffstat (limited to '.github/workflows/windows-msys2.yml')
-rw-r--r-- | .github/workflows/windows-msys2.yml | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/.github/workflows/windows-msys2.yml b/.github/workflows/windows-msys2.yml new file mode 100644 index 0000000..017f0bb --- /dev/null +++ b/.github/workflows/windows-msys2.yml @@ -0,0 +1,144 @@ +# Copyright (c) 2023 [Ribose Inc](https://www.ribose.com). +# All rights reserved. +# This file is a part of rnp +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +name: windows-msys2 + +on: + workflow_dispatch: + push: + branches: + - main + - 'release/**' + paths-ignore: + - '/*.sh' + - '/.*' + - '/_*' + - 'Brewfile' + - 'docs/**' + - '**.adoc' + - '**.md' + - '**.nix' + - 'flake.lock' + - '.github/workflows/*.yml' + - '!.github/workflows/windows-msys2.yml' + pull_request: + paths-ignore: + - '/*.sh' + - '/.*' + - '/_*' + - 'Brewfile' + - 'docs/**' + - '**.adoc' + - '**.md' + - '**.nix' + - 'flake.lock' + +concurrency: + group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}' + cancel-in-progress: true + +env: + RNP_INSTALL: /home/runneradmin/rnp-install + +jobs: + tests: + name: windows-latest msys2 [msystem ${{ matrix.msystem }}; backend ${{ matrix.backend.name }}; build shared libs ${{ matrix.shared_libs }}; GnuPG stable] + if: "!contains(github.event.head_commit.message, 'skip ci')" + timeout-minutes: 70 + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + strategy: + fail-fast: false + matrix: + msystem: [ 'ucrt64', 'mingw64', 'clang64' ] + shared_libs: [ 'on' ] + backend: + - { name: 'botan', lib: 'libbotan' } + - { name: 'openssl', lib: 'openssl' } + + include: + - msystem: 'ucrt64' + shared_libs: 'off' + backend: { name: 'botan', lib: 'libbotan' } + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: true + + - name: Install MSys + uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msystem }} + update: true + install: >- + git + base-devel + p7zip + pacboy: >- + toolchain:p + cmake:p + ${{ matrix.backend.lib }}:p + json-c:p + asciidoctor:p + gtest:p + path-type: minimal + + - name: Configure + run: | + echo CORES="$(nproc --all)" >> $GITHUB_ENV + echo CRYPTO_BACKEND=${{ matrix.backend.name }} >> $GITHUB_ENV + cmake -B build -DBUILD_SHARED_LIBS=${{ matrix.shared_libs }} \ + -DCRYPTO_BACKEND=${{ matrix.backend.name }} \ + -DCMAKE_INSTALL_PREFIX=${{ env.RNP_INSTALL }} \ + -DDOWNLOAD_GTEST=OFF \ + -DCMAKE_BUILD_TYPE=Release . + + - name: Build + run: cmake --build build --config "Release" --parallel ${{ env.CORES }} + + - name: Test + run: | + mkdir -p "build/Testing/Temporary" + cp "cmake/CTestCostData.txt" "build/Testing/Temporary" + export PATH="$PWD/build/src/lib:$PATH" + ctest --parallel ${{ env.CORES }} --test-dir build -C Debug --output-on-failure + + - name: Install + run: cmake --install build + + - name: Checkout shell test framework + uses: actions/checkout@v3 + with: + repository: kward/shunit2 + path: ci/tests/shunit2 + + - name: Run additional ci tests + if: ${{ matrix.shared_libs == 'on' }} + run: ci/tests/ci-tests.sh |