Merge pull request #508 from Jakuje/32b-cast #922
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows Build | |
# This machine tests building the software on a both 32 and 64 Windows architecture. | |
on: [push] | |
jobs: | |
source_build: | |
name: Build dist with Linux | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
- name: Install prerequisites | |
run: | | |
set -x | |
sudo apt install libpcsclite-dev check gengetopt help2man zlib1g-dev | |
- name: Create tar.gz | |
run: | | |
set -x | |
./resources/make_src_dist.sh | |
cd .. | |
mkdir artifact | |
mv $GITHUB_WORKSPACE/yubico-piv-tool-.tar.gz artifact/ | |
- name: Upload artifact | |
uses: actions/upload-artifact@v1 | |
with: | |
name: yubico-piv-tool-src | |
path: ../artifact | |
build: | |
name: Build and Test on Windows | |
needs: source_build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: windows-2019 | |
arch: x86 | |
arch_cmake: Win32 | |
- os: windows-2019 | |
arch: x64 | |
arch_cmake: x64 | |
- os: windows-2022 | |
arch: x86 | |
arch_cmake: Win32 | |
- os: windows-2022 | |
arch: x64 | |
arch_cmake: x64 | |
steps: | |
- name: Download source from source work | |
uses: actions/download-artifact@v1 | |
with: | |
name: yubico-piv-tool-src | |
- name: Extract source | |
run: | | |
Set-PSDebug -Trace 1 | |
cd yubico-piv-tool-src | |
tar xf yubico-piv-tool-.tar.gz | |
- name: install prerequisites | |
env: | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
vcpkg install openssl:$env:ARCH-windows | |
vcpkg install getopt:$env:ARCH-windows | |
vcpkg install check:$env:ARCH-windows | |
vcpkg install zlib:$env:ARCH-windows | |
- name: build | |
env: | |
ARCH_CMAKE: ${{ matrix.arch_cmake }} | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
$env:Path ="C:\vcpkg\packages\openssl_$env:ARCH-windows;$env:Path" | |
$env:include ="C:\vcpkg\packages\openssl_$env:ARCH-windows/include;$env:include" | |
cd yubico-piv-tool-src/yubico-piv-tool- | |
mkdir build; cd build | |
cmake -A $env:ARCH_CMAKE -DVERBOSE_CMAKE=ON -DBACKEND=winscard -DGETOPT_LIB_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/lib -DGETOPT_INCLUDE_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/include -DCHECK_PATH=C:/vcpkg/packages/check_$env:ARCH-windows .. | |
cmake --build . -v | |
$env:Path +=";C:/vcpkg/packages/check_$env:ARCH-windows/bin;C:/vcpkg/packages/openssl_$env:ARCH-windows/bin;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\lib\Debug;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\ykcs11\Debug" | |
ctest.exe -C Debug | |
- name: Build with YKCS11_DBG is set | |
env: | |
ARCH_CMAKE: ${{ matrix.arch_cmake }} | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
$env:Path ="C:\vcpkg\packages\openssl_$env:ARCH-windows;$env:Path" | |
$env:include ="C:\vcpkg\packages\openssl_$env:ARCH-windows/include;$env:include" | |
cd yubico-piv-tool-src/yubico-piv-tool- | |
rm -r build; mkdir build; cd build | |
cmake -A $env:ARCH_CMAKE -DVERBOSE_CMAKE=ON -DBACKEND=winscard -DGETOPT_LIB_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/lib -DGETOPT_INCLUDE_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/include -DCHECK_PATH=C:/vcpkg/packages/check_$env:ARCH-windows -DYKCS11_DBG=3 .. | |
cmake --build . -v | |
$env:Path +=";C:/vcpkg/packages/check_$env:ARCH-windows/bin;C:/vcpkg/packages/openssl_$env:ARCH-windows/bin;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\lib\Debug;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\ykcs11\Debug" | |
ctest.exe -C Debug | |
- name: Build only library (no CLI and no ykcs11) | |
env: | |
ARCH_CMAKE: ${{ matrix.arch_cmake }} | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
$env:Path ="C:\vcpkg\packages\openssl_$env:ARCH-windows;$env:Path" | |
$env:include ="C:\vcpkg\packages\openssl_$env:ARCH-windows/include;$env:include" | |
cd yubico-piv-tool-src/yubico-piv-tool- | |
rm -r build; mkdir build; cd build | |
cmake -A $env:ARCH_CMAKE -DVERBOSE_CMAKE=ON -DBACKEND=winscard -DGETOPT_LIB_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/lib -DGETOPT_INCLUDE_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/include -DCHECK_PATH=C:/vcpkg/packages/check_$env:ARCH-windows -DBUILD_ONLY_LIB=ON .. | |
cmake --build . -v | |
$env:Path +=";C:/vcpkg/packages/check_$env:ARCH-windows/bin;C:/vcpkg/packages/openssl_$env:ARCH-windows/bin;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\lib\Debug;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\ykcs11\Debug" | |
ctest.exe -C Debug | |
- name: Build only dynamic libaries | |
env: | |
ARCH_CMAKE: ${{ matrix.arch_cmake }} | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
$env:Path ="C:\vcpkg\packages\openssl_$env:ARCH-windows;$env:Path" | |
$env:include ="C:\vcpkg\packages\openssl_$env:ARCH-windows/include;$env:include" | |
cd yubico-piv-tool-src/yubico-piv-tool- | |
rm -r build; mkdir build; cd build | |
cmake -A $env:ARCH_CMAKE -DVERBOSE_CMAKE=ON -DBACKEND=winscard -DGETOPT_LIB_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/lib -DGETOPT_INCLUDE_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/include -DCHECK_PATH=C:/vcpkg/packages/check_$env:ARCH-windows -DBUILD_STATIC_LIB=OFF .. | |
cmake --build . -v | |
$env:Path +=";C:/vcpkg/packages/check_$env:ARCH-windows/bin;C:/vcpkg/packages/openssl_$env:ARCH-windows/bin;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\lib\Debug;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\ykcs11\Debug" | |
ctest.exe -C Debug | |
build_no_zlib: | |
name: Build and Test on Windows where zlib is not installed | |
needs: source_build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: windows-2019 | |
arch: x86 | |
arch_cmake: Win32 | |
- os: windows-2019 | |
arch: x64 | |
arch_cmake: x64 | |
- os: windows-2022 | |
arch: x86 | |
arch_cmake: Win32 | |
- os: windows-2022 | |
arch: x64 | |
arch_cmake: x64 | |
steps: | |
- name: Download source from source work | |
uses: actions/download-artifact@v1 | |
with: | |
name: yubico-piv-tool-src | |
- name: Extract source | |
run: | | |
Set-PSDebug -Trace 1 | |
cd yubico-piv-tool-src | |
tar xf yubico-piv-tool-.tar.gz | |
- name: install prerequisites | |
env: | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
vcpkg install openssl:$env:ARCH-windows | |
vcpkg install getopt:$env:ARCH-windows | |
vcpkg install check:$env:ARCH-windows | |
- name: build | |
env: | |
ARCH_CMAKE: ${{ matrix.arch_cmake }} | |
ARCH: ${{ matrix.arch }} | |
run: | | |
Set-PSDebug -Trace 1 | |
$env:Path ="C:\vcpkg\packages\openssl_$env:ARCH-windows;$env:Path" | |
$env:include ="C:\vcpkg\packages\openssl_$env:ARCH-windows/include;$env:include" | |
cd yubico-piv-tool-src/yubico-piv-tool- | |
mkdir build; cd build | |
cmake -A $env:ARCH_CMAKE -DVERBOSE_CMAKE=ON -DBACKEND=winscard -DENABLE_CERT_COMPRESS=OFF -DGETOPT_LIB_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/lib -DGETOPT_INCLUDE_DIR=C:/vcpkg/packages/getopt-win32_$env:ARCH-windows/include -DCHECK_PATH=C:/vcpkg/packages/check_$env:ARCH-windows .. | |
cmake --build . -v | |
$env:Path +=";C:/vcpkg/packages/check_$env:ARCH-windows/bin;C:/vcpkg/packages/openssl_$env:ARCH-windows/bin;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\lib\Debug;$env:GITHUB_WORKSPACE\yubico-piv-tool-src\yubico-piv-tool-\build\ykcs11\Debug" | |
ctest.exe -C Debug |