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 combined action with lib and app build
- Fixed codeql.yml apt failure and update to v3

CI builds of desktop versions (against prebuild QT packages):
- windows msvc x64 (NOK, qt build issue, commented out)
- linux gcc x64
- macos clang
CI builds of smartphone versions:
- linux android (NOK, cmake config issue, commented out)
- macos ios (NOK, cmake config issue, commented out)

CI builds of openssl, qt libs:
- windows msvc x64
- linux gcc x64
- macos clang
CI builds of smartphone versions:
- linux android
- macos ios
  • Loading branch information
chcg committed Sep 16, 2024
1 parent 98faadb commit 383f693
Show file tree
Hide file tree
Showing 5 changed files with 318 additions and 8 deletions.
13 changes: 13 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:

# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
118 changes: 118 additions & 0 deletions .github/workflows/CI_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: CI_build

on: [push, pull_request]

jobs:

build_windows:

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

steps:

- name: Install openssl dev
run: |
choco install openssl --version=3.3.2
choco install ninja
- name: Add nmake
uses: ilammy/msvc-dev-cmd@v1

- name: Checkout repo
uses: actions/checkout@v4

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

- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B _build
- name: build cmake
run: |
cmake --build _build --config ${{ matrix.build_configuration }} --target package
cmake --install _build
- name: run ctest
run: |
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"
build_linux:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Unix Makefiles"]

steps:
- uses: actions/checkout@v4

- name: Install packages via apt
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@v4
with:
version: '6.7.2'
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity'
setup-python: 'false'

- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B _build
- name: build cmake
run: |
cmake --build _build --config ${{ matrix.build_configuration }} --target package
sudo cmake --install _build
- name: run ctest
run: |
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"
build_macos:

runs-on: macos-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Unix Makefiles"]

steps:
- uses: actions/checkout@v4

- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.2'
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity qtimageformats'

- name: generate cmake
run: |
export OPENSSL_ROOT=/usr/local/opt/openssl/bin
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/
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B _build
- name: build cmake
run: |
cmake --build _build --config ${{ matrix.build_configuration }}
- name: run ctest
run: |
ctest --test-dir _build --output-on-failure -C "${{ matrix.build_configuration }}"
171 changes: 171 additions & 0 deletions .github/workflows/CI_build_combined.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
name: CI_build_combined

on: [push, pull_request]

env:
BUILD_DIR_LIBS_WIN: "c:/_build_libs"
BUILD_DIR_APP_WIN: "c:/_build"
BUILD_DIR_LIBS: "_build_libs"
BUILD_DIR_APP: "_build"


jobs:
build_windows:

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

steps:

- name: Install nmake replacement jom, ninja
run: |
choco install jom ninja
- name: Checkout repo
uses: actions/checkout@v4

- name: Add nmake
uses: ilammy/msvc-dev-cmd@v1

- name: generate cmake libs
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B "${{ env.BUILD_DIR_LIBS_WIN }}" D:\a\AusweisApp\AusweisApp\libs
- name: build cmake libs
run: |
cmake --build "${{ env.BUILD_DIR_LIBS_WIN }}" --config ${{ matrix.build_configuration }}
- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B "${{ env.BUILD_DIR_APP_WIN }}" -DCMAKE_PREFIX_PATH=c:\_build_libs\dist D:\a\AusweisApp\AusweisApp
- name: build cmake
run: |
cmake --build "${{ env.BUILD_DIR_APP_WIN }}" --config ${{ matrix.build_configuration }} --target package
cmake --install "${{ env.BUILD_DIR_APP_WIN }}"
- name: run ctest
run: |
ctest --test-dir "${{ env.BUILD_DIR_APP_WIN }}" --output-on-failure -C "${{ matrix.build_configuration }}"
build_linux:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Ninja"]

steps:
- uses: actions/checkout@v4

- name: Install packages via apt
run: |
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-14-dev libclang-13-dev ninja-build
- name: generate cmake libs
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B ${{ env.BUILD_DIR_LIBS }} ./libs
- name: build cmake libs
run: |
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }}
- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B ${{ env.BUILD_DIR_APP }} -DCMAKE_PREFIX_PATH=./_build_libs/dist
- name: build cmake
run: |
cmake --build ${{ env.BUILD_DIR_APP }} --config ${{ matrix.build_configuration }}
sudo cmake --install ${{ env.BUILD_DIR_APP }}
- name: run ctest
run: |
ctest --test-dir ${{ env.BUILD_DIR_APP }} --output-on-failure -C "${{ matrix.build_configuration }}"
build_linux_android:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Unix Makefiles"]

steps:
- uses: actions/checkout@v4

- name: Install packages via apt
run: |
sudo apt-get update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libgl1-mesa-dev libdbus-1-dev libclang-15-dev libclang-14-dev libclang-13-dev ninja-build
sudo apt -y remove firefox microsoft-edge-stable google-chrome-stable kotlin libmono* mono-runtime
- name: generate cmake libs
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -B ${{ env.BUILD_DIR_LIBS }} ./libs
- name: build cmake libs
run: |
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }}
cmake --install ${{ env.BUILD_DIR_LIBS }}
build_macos:

runs-on: macos-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Ninja"]

steps:
- uses: actions/checkout@v4

- name: install ninja
run: |
brew install ninja
- name: generate cmake libs
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -B ${{ env.BUILD_DIR_LIBS }} ./libs
- name: build cmake libs
run: |
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }}
- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_PREFIX_PATH=./_build_libs/dist -B ${{ env.BUILD_DIR_APP }}
build_ios:

runs-on: macos-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Unix Makefiles"]

steps:
- uses: actions/checkout@v4

- name: install ninja
run: |
brew install ninja
- name: generate cmake libs
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.toolchain.cmake -B ${{ env.BUILD_DIR_LIBS }} ./libs
- name: build cmake libs
run: |
cmake --build ${{ env.BUILD_DIR_LIBS }} --config ${{ matrix.build_configuration }}
16 changes: 12 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,29 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
queries: +security-and-quality

- name: Install dependencies
run: sudo apt update -qq && sudo apt install -y cmake pkg-config libssl-dev libudev-dev libhttp-parser-dev libpcsclite-dev libqt6svg6-dev libqt6websockets6-dev qt6-base-dev qt6-base-private-dev qt6-declarative-dev qt6-connectivity-dev qt6-scxml-dev qt6-tools-dev qt6-tools-dev-tools libqt6opengl6-dev libqt6shadertools6-dev libgl1-mesa-dev qt6-l10n-tools

#QT > 6.4 is required but ubuntu 22.04 just has 6.2.4, so additional installation is needed
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.2'
modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity'
setup-python: 'false'

- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{ matrix.language }}"
8 changes: 4 additions & 4 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ environment:
- PlatformToolset: mingw-w64
platform: mingw-w64
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
QTPath: C:\Qt\6.3.1\mingw_64
OPENSSLPath: C:\OpenSSL-v30-Win64\bin
QTPath: C:\Qt\6.7\mingw_64
OPENSSLPath: C:\OpenSSL-v33-Win64\bin

- PlatformToolset: v142
platform: x64
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
QTPath: C:\Qt\6.3.1\msvc2019_64
OPENSSLPath: C:\OpenSSL-v30-Win64\bin
QTPath: C:\Qt\6.7\msvc2019_64
OPENSSLPath: C:\OpenSSL-v33-Win64\bin
ARCHI: amd64

configuration:
Expand Down

0 comments on commit 383f693

Please sign in to comment.