72 lines
2.0 KiB
YAML
72 lines
2.0 KiB
YAML
name: "CI: Build Test"
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths-ignore:
|
|
- "**.md"
|
|
- "**.png"
|
|
- "**.jpg"
|
|
- "**.jpeg"
|
|
- ".gitignore"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
name: Build
|
|
strategy:
|
|
matrix:
|
|
qt-version: [5.15.2, 6.4.0]
|
|
build-type: [Debug, Release]
|
|
library-type: [shared, static]
|
|
platform: [windows-latest, ubuntu-latest, macos-latest]
|
|
include:
|
|
- platform: windows-latest
|
|
CC: cl
|
|
CXX: cl
|
|
- platform: ubuntu-latest
|
|
CC: gcc
|
|
CXX: g++
|
|
- platform: macos-latest
|
|
CC: clang
|
|
CXX: clang++
|
|
- library-type: shared
|
|
lib_type_flag: -DFRAMELESSHELPER_BUILD_STATIC=OFF
|
|
- library-type: static
|
|
lib_type_flag: -DFRAMELESSHELPER_BUILD_STATIC=ON
|
|
|
|
runs-on: ${{ matrix.platform }}
|
|
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Install Qt SDK
|
|
uses: jurplel/install-qt-action@v3
|
|
with:
|
|
version: ${{ matrix.qt-version }}
|
|
cache: true
|
|
|
|
- name: Set up Ninja
|
|
uses: seanmiddleditch/gha-setup-ninja@v3
|
|
with:
|
|
version: 1.11.1 # Current latest version.
|
|
|
|
- name: Set up MSVC environment
|
|
if: ${{ matrix.platform == 'windows-latest' }}
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
|
|
- name: Install Linux dependencies
|
|
if: ${{ matrix.platform == 'ubuntu-latest' }}
|
|
run: |
|
|
sudo apt install -y libxcb1-dev libgtk-3-dev
|
|
|
|
- name: Build library with CMake
|
|
run: |
|
|
mkdir ci-test-build
|
|
cd ci-test-build
|
|
cmake -DCMAKE_C_COMPILER=${{ matrix.CC }} -DCMAKE_CXX_COMPILER=${{ matrix.CXX }} -DCMAKE_INSTALL_PREFIX=../ci-test-install -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DFRAMELESSHELPER_EXAMPLES_DEPLOYQT=OFF ${{ matrix.lib_type_flag }} -GNinja ..
|
|
cmake --build . --target all --config ${{ matrix.build-type }} --parallel
|
|
cmake --install . --config ${{ matrix.build-type }}
|