Skip to content

Commit

Permalink
- requested changes to use -B <builddir> and avoid mkdir, cd
Browse files Browse the repository at this point in the history
- requested changes to use cmake --install
- added first example of a combined action with lib and app build
  • Loading branch information
chcg committed Feb 29, 2024
1 parent 7938078 commit e60a2bd
Show file tree
Hide file tree
Showing 3 changed files with 275 additions and 103 deletions.
121 changes: 50 additions & 71 deletions .github/workflows/CI_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,55 +4,51 @@ on: [push, pull_request]

jobs:

# failing with D:\a\AusweisApp\AusweisApp\test\helper\common\MockReleaseInformation.cpp(42,35): error C2248: 'QString::QString': cannot access private member declared in class 'QString' [C:\_build\test\helper\common\AusweisAppTestHelperCommon.vcxproj]
#build_windows:
# release build not available with active qttest
# build splitted between D: and C: drive due to disk size
build_windows:

runs-on: windows-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Debug]
build_platform: [x64]

# runs-on: windows-latest
# strategy:
# fail-fast: false
# matrix:
# build_configuration: [Release]
# build_platform: [x64]

# steps:
steps:

# - name: Install openssl dev
# run: |
# choco install openssl
# dir "C:\Program Files"
- name: Install openssl dev
run: |
choco install openssl --version=3.1.1
dir "C:\Program Files"
# - name: Checkout repo
# uses: actions/checkout@v4
- name: Checkout repo
uses: actions/checkout@v4

# - name: Add msbuild to PATH
# uses: microsoft/setup-msbuild@v1
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1

# - name: Install Qt
# uses: jurplel/install-qt-action@v3
# with:
# version: '6.5.*'
# modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity'
# setup-python: 'false'
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '6.5.*'
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity qtimageformats'
setup-python: 'false'

# - name: generate cmake
# run: |
# mkdir c:\_build
# cd c:\_build
# cmake -G "Visual Studio 17 2022" -A ${{ matrix.build_platform }} -T "v143" D:\a\AusweisApp\AusweisApp
- name: generate cmake
run: |
cmake -G "Visual Studio 17 2022" -A ${{ matrix.build_platform }} -T "v143" D:\a\AusweisApp\AusweisApp -B c:\_build
# - name: build cmake
# run: |
# cd c:\_build
# cmake --build . --config ${{ matrix.build_configuration }} --target package
- name: build cmake
run: |
cmake --build c:\_build --config ${{ matrix.build_configuration }} --target package
# cmake --install c:\_build
# - name: run ctest
# run: |
# cd c:\_build
# ctest --output-on-failure -C "${{ matrix.build_configuration }}"
# ctest --test-dir c:\_build --output-on-failure -C "${{ matrix.build_configuration }}"

# ubuntu 22.04 comes just with QT 6.2.4 and Qt >= 6.4 is required
build_linux_cmake:
build_linux:

runs-on: ubuntu-latest
strategy:
Expand All @@ -68,6 +64,7 @@ jobs:
run: |
sudo apt update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev qt6-l10n-tools
# ubuntu 22.04 comes just with QT 6.2.4 and Qt >= 6.4 is required
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
Expand All @@ -77,23 +74,18 @@ jobs:

- name: generate cmake
run: |
mkdir _build
cd _build
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" ..
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B _build
- name: build cmake
run: |
cd _build
cmake --build . --config ${{ matrix.build_configuration }} --target package
sudo make install
cmake --build _build --config ${{ matrix.build_configuration }} --target package
sudo cmake --install _build
- name: run ctest
run: |
cd _build
ctest --output-on-failure -C "${{ matrix.build_configuration }}"
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"
# failing in cmake generation step: Could NOT find OpenGL (missing: OPENGL_INCLUDE_DIR)
# build_linux_android_cmake:
# build_linux_android:

# runs-on: ubuntu-latest
# strategy:
Expand Down Expand Up @@ -131,22 +123,18 @@ jobs:

# - name: generate cmake
# run: |
# mkdir _build
# cd _build
# cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DQT_HOST_PATH=/home/runner/work/AusweisApp/Qt/6.5.3/gcc_64 -DCMAKE_ANDROID_ARCH_ABI=x86_64 -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake ..
# cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DQT_HOST_PATH=/home/runner/work/AusweisApp/Qt/6.5.3/gcc_64 -DCMAKE_ANDROID_ARCH_ABI=x86_64 -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -B _build

# - name: build cmake
# run: |
# cd _build
# cmake --build . --config ${{ matrix.build_configuration }}
# cmake --build _build --config ${{ matrix.build_configuration }}

# - name: run ctest
# run: |
# cd _build
# ctest --output-on-failure -C "${{ matrix.build_configuration }}"
# ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"

# due to https://bugreports.qt.io/browse/QTBUG-117765 QT 6.5.2 must be used instead of 6.5.3
build_macos_cmake:
build_macos:

runs-on: macos-latest
strategy:
Expand All @@ -171,22 +159,17 @@ jobs:
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig/
mkdir _build
cd _build
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" ..
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B _build
- name: build cmake
run: |
cd _build
cmake --build . --config ${{ matrix.build_configuration }}
cmake --build _build --config ${{ matrix.build_configuration }}
- name: run ctest
run: |
cd _build
ctest --output-on-failure -C "${{ matrix.build_configuration }}"
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"
# failing in cmake generation step: Could NOT find OpenGL (missing: OPENGL_INCLUDE_DIR)
# build_ios_cmake:
# build_ios:

# runs-on: macos-latest
# strategy:
Expand Down Expand Up @@ -220,16 +203,12 @@ jobs:
# export LDFLAGS=-L/usr/local/opt/openssl/lib
# export CPPFLAGS=-I/usr/local/opt/openssl/include
# export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig/
# mkdir _build
# cd _build
# cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DQT_HOST_PATH=/Users/runner/work/AusweisApp/Qt/6.5.3/macos -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.toolchain.cmake ..
# cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DQT_HOST_PATH=/Users/runner/work/AusweisApp/Qt/6.5.3/macos -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.toolchain.cmake -B _build

# - name: build cmake
# run: |
# cd _build
# cmake --build . --config ${{ matrix.build_configuration }}
# cmake --build _build --config ${{ matrix.build_configuration }}

# - name: run ctest
# run: |
# cd _build
# ctest --output-on-failure -C "${{ matrix.build_configuration }}"
# ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"
Loading

0 comments on commit e60a2bd

Please sign in to comment.