Skip to content

CI: Set codepage to utf-8 for msys2 tests run. #1933

CI: Set codepage to utf-8 for msys2 tests run.

CI: Set codepage to utf-8 for msys2 tests run. #1933

Workflow file for this run

# 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'
- 'version.txt'
- '.github/workflows/*.yml'
- '!.github/workflows/windows-msys2.yml'
pull_request:
paths-ignore:
- '/*.sh'
- '/.*'
- '/_*'
- 'Brewfile'
- 'docs/**'
- '**.adoc'
- '**.md'
- '**.nix'
- 'flake.lock'
- 'version.txt'
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@v4
with:
fetch-depth: 1
submodules: true
- name: Check environment
run: |
chcp
echo %PATH%
echo Lang:
echo %LANG%
echo LC_ALL:
echo %LC_ALL%
echo chcp.com:
chcp 65001
echo Printing unicode 1:
echo ✓
echo Printing unicode 2:
echo Блабла
where python
where python3
set PYTHONUTF8=1
echo Printing from Python:
python -c "print('\u2713')"
python -c "import sys; print(sys.stdout.encoding)"
shell: cmd
- 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: |
# Change codepage to utf-8
env
cat /d/a/_temp/setup-msys2/msys2.CMD
echo $PATH
echo "Lang:"
echo $LANG || true
echo "LC_ALL:"
echo $LC_ALL || true
echo "chcp.com:"
chcp.com 65001 || true
echo "Printing unicode 1:"
echo -e "\xE2\x9C\x93"
echo "Printing unicode 2:"
printf "Блабла"
which python || true
which python3 || true
export PYTHONUTF8=1
echo "Printing from Python:"
python -c 'print("\u2713")' || true
python -c 'import sys; print(sys.stdout.encoding)' || true
mkdir -p "build/Testing/Temporary"
cp "cmake/CTestCostData.txt" "build/Testing/Temporary"
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export PYTHONIOENCODING=utf-8
export PYTHONUTF8=1
export PATH="$PWD/build/src/lib:$PATH"
export RNP_LOG_CONSOLE=1
ctest --test-dir build -C Debug -V -R rnp_tests.test_windows_unicode || true
ctest --parallel ${{ env.CORES }} --test-dir build -C Debug --output-on-failure -R rnp_tests.test_cli_rnpkeys_unicode
- name: Install
run: cmake --install build
- name: Checkout shell test framework
uses: actions/checkout@v4
with:
repository: kward/shunit2
path: ci/tests/shunit2
- name: Run additional ci tests
if: ${{ matrix.shared_libs == 'on' }}
run: ci/tests/ci-tests.sh