slint/.github/workflows/cpp_package.yaml
Simon Hausmann 589b24ef70 Use GitHub's Windows Server 2019 for the CI
`windows-latest` used to be that, but that's being upgrade to Windows Server 2022, which
appears to have Visual Studio Code 2022 installed.

That in turn seems to not be supported by node-gyp's version detection just yet.

So pin to the working image for now and let's upgrade later intentionally.
2022-02-23 10:41:11 +01:00

85 lines
2.9 KiB
YAML

# Copyright © SixtyFPS GmbH <info@slint-ui.com>
# SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-commercial
name: Build the C++ binary package
on:
workflow_dispatch:
workflow_call:
jobs:
cmake_package:
env:
DYLD_FRAMEWORK_PATH: /Users/runner/work/slint/Qt/6.2.1/clang_64/lib
QT_QPA_PLATFORM: offscreen
CARGO_INCREMENTAL: false
strategy:
matrix:
os: [ubuntu-20.04, macOS-11, windows-2019]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install Linux Dependencies
if: matrix.os == 'ubuntu-20.04'
run: sudo apt-get install libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev
- name: Cache Qt
if: matrix.os != 'windows-2019'
id: cache-qt
uses: actions/cache@v2
with:
path: ~/work/slint/Qt
key: ${{ runner.os }}-${{ github.job }}-cpp-Qt
- name: Install Qt (Ubuntu)
uses: jurplel/install-qt-action@v2
if: matrix.os == 'ubuntu-20.04'
with:
version: 5.15.2
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- name: Install Qt (Windows, uncached)
if: matrix.os == 'windows-2019'
uses: jurplel/install-qt-action@v2
with:
version: 6.2.1
- name: Install Qt (cached)
if: matrix.os != 'ubuntu-20.04' && matrix.os != 'windows-2019'
uses: jurplel/install-qt-action@v2
with:
version: 6.2.1
cached: ${{ steps.cache-qt.outputs.cache-hit }}
- name: Install latest stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: Swatinem/rust-cache@v1
- uses: actions-rs/install@v0.1
with:
crate: cargo-about
- name: Prepare licenses (with Qt)
if: matrix.os == 'windows-2019' || matrix.os == 'macOS-11'
run: bash -x ./scripts/prepare_binary_package.sh . --with-qt
- name: Prepare licenses (without Qt)
if: matrix.os != 'windows-2019' && matrix.os != 'macOS-11'
run: bash -x ./scripts/prepare_binary_package.sh .
- uses: ilammy/msvc-dev-cmd@v1
- name: Select MSVC (windows)
run: |
echo "CC=cl.exe" >> $GITHUB_ENV
echo "CXX=cl.exe" >> $GITHUB_ENV
if: matrix.os == 'windows-2019'
- name: C++ Build
uses: lukka/run-cmake@v3.4
with:
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
cmakeListsTxtPath: CMakeLists.txt
cmakeAppendedArgs: '-DCMAKE_BUILD_TYPE=RelWithDebInfo -DSLINT_PACKAGE_BUNDLE_QT=ON'
buildDirectory: ${{ runner.workspace }}/cppbuild
buildWithCMakeArgs: '--config Release'
- name: cpack
working-directory: ${{ runner.workspace }}/cppbuild
run: cmake --build . --config Release --target package
- name: "Upload C++ packages"
uses: actions/upload-artifact@v2
with:
name: cpp_bin
path: ${{ runner.workspace }}/cppbuild/Slint-cpp-*