try: use Qt 6 #11
Workflow file for this run
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: Test Windows | |
on: | |
pull_request: | |
workflow_dispatch: | |
merge_group: | |
env: | |
TWITCH_PUBSUB_SERVER_TAG: v1.0.7 | |
QT_QPA_PLATFORM: minimal | |
# Last known good conan version | |
# 2.0.3 has a bug on Windows (conan-io/conan#13606) | |
CONAN_VERSION: 2.0.2 | |
concurrency: | |
group: test-windows-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test-windows: | |
name: "Test ${{ matrix.os }}, Qt ${{ matrix.qt-version }}" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest] | |
qt-version: [5.15.2, 6.5.0] | |
plugins: [false] | |
skip-artifact: [false] | |
skip-crashpad: [false] | |
fail-fast: false | |
env: | |
C2_BUILD_WITH_QT6: ${{ startsWith(matrix.qt-version, '6.') && 'ON' || 'OFF' }} | |
QT_MODULES: ${{ startsWith(matrix.qt-version, '6.') && 'qt5compat qtimageformats' || '' }} | |
steps: | |
- name: Enable plugin support | |
if: matrix.plugins | |
run: | | |
echo "C2_PLUGINS=ON" >> "$Env:GITHUB_ENV" | |
- name: Set Crashpad | |
if: matrix.skip-crashpad == false | |
run: | | |
echo "C2_ENABLE_CRASHPAD=ON" >> "$Env:GITHUB_ENV" | |
- name: Set BUILD_WITH_QT6 | |
if: startsWith(matrix.qt-version, '6.') | |
run: | | |
echo "C2_BUILD_WITH_QT6=ON" >> "$Env:GITHUB_ENV" | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
fetch-depth: 0 # allows for tags access | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
with: | |
cache: true | |
cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2 | |
modules: ${{ env.QT_MODULES }} | |
version: ${{ matrix.qt-version }} | |
- name: Enable Developer Command Prompt | |
uses: ilammy/[email protected] | |
- name: Setup conan variables | |
if: startsWith(matrix.os, 'windows') | |
run: | | |
"C2_USE_OPENSSL3=$(if ($Env:C2_BUILD_WITH_QT6 -eq "on") { "True" } else { "False" })" >> "$Env:GITHUB_ENV" | |
"C2_CONAN_CACHE_SUFFIX=$(if ($Env:C2_BUILD_WITH_QT6 -eq "on") { "-QT6" } else { "`" })" >> "$Env:GITHUB_ENV" | |
- name: Setup sccache | |
# sccache v0.7.4 | |
uses: hendrikmuhs/[email protected] | |
with: | |
variant: sccache | |
# only save on the default (master) branch | |
save: ${{ github.event_name == 'push' }} | |
key: sccache-test-${{ matrix.os }}-${{ matrix.qt-version }}-${{ matrix.skip-crashpad }} | |
restore-keys: | | |
sccache-test-${{ matrix.os }}-${{ matrix.qt-version }} | |
- name: Cache conan packages | |
uses: actions/cache@v4 | |
with: | |
key: ${{ runner.os }}-conan-user-${{ hashFiles('**/conanfile.py') }}${{ env.C2_CONAN_CACHE_SUFFIX }} | |
path: ~/.conan2/ | |
- name: Install Conan | |
run: | | |
python3 -c "import site; import sys; print(f'{site.USER_BASE}\\Python{sys.version_info.major}{sys.version_info.minor}\\Scripts')" >> "$Env:GITHUB_PATH" | |
pip3 install --user "conan==${{ env.CONAN_VERSION }}" | |
- name: Setup Conan | |
run: | | |
conan --version | |
conan profile detect -f | |
- name: Install dependencies | |
run: | | |
mkdir build-test | |
cd build-test | |
conan install .. ` | |
-s build_type=RelWithDebInfo ` | |
-c tools.cmake.cmaketoolchain:generator="NMake Makefiles" ` | |
-b missing ` | |
--output-folder=. ` | |
-o with_openssl3="$Env:C2_USE_OPENSSL3" | |
- name: Build | |
run: | | |
cmake ` | |
-G"NMake Makefiles" ` | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo ` | |
-DBUILD_TESTS=On ` | |
-DBUILD_APP=OFF ` | |
-DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" ` | |
-DUSE_PRECOMPILED_HEADERS=On ` | |
-DBUILD_WITH_CRASHPAD="$Env:C2_ENABLE_CRASHPAD" ` | |
-DCHATTERINO_PLUGINS="$Env:C2_PLUGINS" ` | |
-DBUILD_WITH_QT6="$Env:C2_BUILD_WITH_QT6" ` | |
.. | |
set cl=/MP | |
nmake /S /NOLOGO | |
working-directory: build-test | |
- name: Download and extract Twitch PubSub Server Test | |
run: | | |
mkdir pubsub-server-test | |
Invoke-WebRequest -Uri "https://github.com/Chatterino/twitch-pubsub-server-test/releases/download/${{ env.TWITCH_PUBSUB_SERVER_TAG }}/server-${{ env.TWITCH_PUBSUB_SERVER_TAG }}-windows-amd64.zip" -outfile "pubsub-server.zip" | |
Expand-Archive pubsub-server.zip -DestinationPath pubsub-server-test | |
rm pubsub-server.zip | |
cd pubsub-server-test | |
Invoke-WebRequest -Uri "https://github.com/Chatterino/twitch-pubsub-server-test/raw/${{ env.TWITCH_PUBSUB_SERVER_TAG }}/cmd/server/server.crt" -outfile "server.crt" | |
Invoke-WebRequest -Uri "https://github.com/Chatterino/twitch-pubsub-server-test/raw/${{ env.TWITCH_PUBSUB_SERVER_TAG }}/cmd/server/server.key" -outfile "server.key" | |
cd .. | |
- name: Cargo Install httpbox | |
run: | | |
cargo install --git https://github.com/kevinastone/httpbox --rev 89b971f | |
- name: Test | |
timeout-minutes: 30 | |
run: | | |
httpbox --port 9051 & | |
cd ..\pubsub-server-test | |
.\server.exe 127.0.0.1:9050 & | |
cd ..\build-test | |
ctest --repeat until-pass:4 --output-on-failure --exclude-regex ClassicEmoteNameFiltering | |
working-directory: build-test | |
- name: Clean Conan cache | |
run: conan cache clean --source --build --download "*" |