summaryrefslogtreecommitdiffstats
path: root/.github/workflows/windows-msys2.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/windows-msys2.yml')
-rw-r--r--.github/workflows/windows-msys2.yml144
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