0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-24 16:44:39 +03:00
LimeReport/.github/workflows/cmake.yml

218 lines
7.3 KiB
YAML
Raw Normal View History

2022-09-17 10:53:58 +03:00
name: CMake
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
check-code-style:
runs-on: ubuntu-22.04
name: "Check code style"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Perform check
run: ./tools/check_code_style.sh
2022-09-17 10:53:58 +03:00
build:
runs-on: ubuntu-${{ matrix.ubuntu_version }}
name: Ubuntu-${{ matrix.ubuntu_version }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }}
needs: check-code-style
2022-09-17 10:53:58 +03:00
strategy:
fail-fast: false
matrix:
ubuntu_version: [20.04, 22.04]
qt_version: [5.15.2, 6.4.0]
2022-09-17 10:53:58 +03:00
static: [ON, OFF]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-tags: true
# https://github.com/actions/checkout/issues/1781
# workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284
- name: Fetch tags
run: git fetch --prune --unshallow --tags
2022-09-17 10:53:58 +03:00
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
cache: 'true'
cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }}
dir: ${{ github.workspace }}/Qt
- name: Configure CMake for Qt5
if: "startsWith(matrix.qt_version, '5.')"
run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
2022-09-17 10:53:58 +03:00
- name: Configure CMake for Qt6
if: "startsWith(matrix.qt_version, '6.')"
run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
2022-09-17 10:53:58 +03:00
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
MSVC:
name: windows-${{ matrix.win_version }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }}
runs-on: windows-${{ matrix.win_version }}
needs: check-code-style
strategy:
fail-fast: false
matrix:
win_version: [2019, 2022]
qt_version: [5.15.2, 6.4.0]
static: [ON, OFF]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-tags: true
# https://github.com/actions/checkout/issues/1781
# workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284
- name: Fetch tags
run: git fetch --prune --unshallow --tags
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
cache: 'true'
cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }}
dir: ${{ github.workspace }}/Qt
- name: Configure CMake for Qt5
if: "startsWith(matrix.qt_version, '5.')"
run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
- name: Configure CMake for Qt6
if: "startsWith(matrix.qt_version, '6.')"
run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
MinGW-w64:
runs-on: windows-2022
name: msys2-${{ matrix.msystem }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }}
needs: check-code-style
strategy:
fail-fast: false
matrix:
qt_version: [5, 6]
msystem: [UCRT64, CLANG64]
static: [ON, OFF]
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-tags: true
- name: Install MinGW-w64 packages Qt5
if: "startsWith(matrix.qt_version, '5')"
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
release: false
update: true
pacboy: >-
cc:p
cmake:p
ninja:p
git:
qt${{ matrix.qt_version }}-base:p
qt${{ matrix.qt_version }}-svg:p
qt${{ matrix.qt_version }}-tools:p
qt${{ matrix.qt_version }}-quickcontrols:p
- name: Install MinGW-w64 packages Qt6
if: "startsWith(matrix.qt_version, '6')"
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
release: false
update: true
pacboy: >-
cc:p
cmake:p
ninja:p
git:
qt${{ matrix.qt_version }}-base:p
qt${{ matrix.qt_version }}-svg:p
qt${{ matrix.qt_version }}-tools:p
qt${{ matrix.qt_version }}-declarative:p
# https://github.com/actions/checkout/issues/1781
# workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284
- name: Fetch tags
run: git fetch --prune --unshallow --tags
- name: Configure CMake for Qt5
if: "startsWith(matrix.qt_version, '5')"
run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
- name: Configure CMake for Qt6
if: "startsWith(matrix.qt_version, '6')"
run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
- name: Build
run: cmake --build '${{github.workspace}}/build' --config ${{env.BUILD_TYPE}}
macos:
runs-on: macos-${{ matrix.macos_version }}
name: macos-${{ matrix.macos_version }}-Qt-${{ matrix.qt_version }}-static-${{ matrix.static }}
needs: check-code-style
strategy:
fail-fast: false
matrix:
2024-07-26 16:44:29 +03:00
macos_version: [12]
qt_version: [5.15.2, 6.4.0]
static: [ON, OFF]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-tags: true
# https://github.com/actions/checkout/issues/1781
# workaround https://github.com/actions/checkout/issues/1471#issuecomment-1755560284
- name: Fetch tags
run: git fetch --prune --unshallow --tags
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_version }}
cache: 'true'
cache-key-prefix: ${{ runner.os }}-Qt-Cache-${{ matrix.qt_version }}
dir: ${{ github.workspace }}/Qt
- name: Configure CMake for Qt5
if: "startsWith(matrix.qt_version, '5.')"
run: cmake -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
- name: Configure CMake for Qt6
if: "startsWith(matrix.qt_version, '6.')"
run: cmake -DUSE_QT6=ON -DCMAKE_BUILD_TYPE="${{env.BUILD_TYPE}}" -DLIMEREPORT_STATIC=${{ matrix.static }} -DLIMEREPORT_DEMO=ON -B "${{github.workspace}}/build"
- name: Build
2024-07-26 16:44:29 +03:00
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}