From b4d9a4cff6263cb6891ddc2335c97feba6bd64d9 Mon Sep 17 00:00:00 2001 From: Christian Grasser Date: Fri, 15 Apr 2022 09:57:34 +0200 Subject: [PATCH] Fixed codeql.yml apt failure 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 --- .github/dependabot.yml | 13 ++ .github/workflows/CI_build.yml | 227 ++++++++++++++++++++++++++++ .github/workflows/CI_build_libs.yml | 136 +++++++++++++++++ .github/workflows/codeql.yml | 2 +- appveyor.yml | 4 +- 5 files changed, 379 insertions(+), 3 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/CI_build.yml create mode 100644 .github/workflows/CI_build_libs.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..2d01d71c9 --- /dev/null +++ b/.github/dependabot.yml @@ -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" diff --git a/.github/workflows/CI_build.yml b/.github/workflows/CI_build.yml new file mode 100644 index 000000000..71712f628 --- /dev/null +++ b/.github/workflows/CI_build.yml @@ -0,0 +1,227 @@ +name: CI_build + +on: [push, pull_request] + +jobs: + #build: + + # failing with D:\a\AusweisApp2\AusweisApp2\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] + + # runs-on: windows-latest + # strategy: + # fail-fast: false + # matrix: + # build_configuration: [Release] + # build_platform: [x64] + + # steps: + + # - name: Install openssl dev + # run: | + # choco install openssl + # dir "C:\Program Files" + + # - name: Checkout repo + # uses: actions/checkout@v4 + + # - 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: generate cmake + # run: | + # mkdir c:\_build + # cd c:\_build + # cmake -G "Visual Studio 17 2022" -A ${{ matrix.build_platform }} -T "v143" D:\a\AusweisApp2\AusweisApp2 + + # - name: build cmake + # run: | + # cd c:\_build + # cmake --build . --config ${{ matrix.build_configuration }} --target package + + # - name: run ctest + # run: | + # cd c:\_build + # ctest --output-on-failure -C "${{ matrix.build_configuration }}" + + + build_linux_cmake: + + 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 libqt6svg6-dev libqt6websockets6-dev qt6-base-dev qt6-base-private-dev qt6-declarative-dev qt6-scxml-dev qt6-tools-dev qt6-tools-dev-tools qt6-connectivity-dev libqt6opengl6-dev libqt6shadertools6-dev libgl1-mesa-dev qt6-l10n-tools + + - name: generate cmake + run: | + mkdir _build + cd _build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" .. + + - name: build cmake + run: | + cd _build + cmake --build . --config ${{ matrix.build_configuration }} --target package + sudo make install + + - name: run ctest + run: | + cd _build + ctest --output-on-failure -C "${{ matrix.build_configuration }}" + + # failing in cmake gen step, no prebuild openssl for android + # build_linux_android_cmake: + + # 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 qt6-l10n-tools doxygen graphviz + + # - name: Install Qt + # uses: jurplel/install-qt-action@v3 + # with: + # version: '6.4.3' + # host: 'linux' + # target: 'desktop' + # arch: 'gcc_64' + # modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity' + # setup-python: 'false' + + # - name: Install Qt + # uses: jurplel/install-qt-action@v3 + # with: + # version: '6.4.*' + # host: 'linux' + # target: 'android' + # arch: 'android_x86_64' + # modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity' + # setup-python: 'false' + + # - 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/AusweisApp2/Qt/6.4.3/gcc_64 -DCMAKE_ANDROID_ARCH_ABI=x86_64 -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake .. + + # - name: build cmake + # run: | + # cd _build + # cmake --build . --config ${{ matrix.build_configuration }} + + # - name: run ctest + # run: | + # cd _build + # ctest --output-on-failure -C "${{ matrix.build_configuration }}" + + + build_macos_cmake: + + 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@v3 + with: + version: '6.4.*' + modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity qtimageformats' + setup-python: 'false' + + - 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/ + mkdir _build + cd _build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" .. + + - name: build cmake + run: | + cd _build + cmake --build . --config ${{ matrix.build_configuration }} + + - name: run ctest + run: | + cd _build + ctest --output-on-failure -C "${{ matrix.build_configuration }}" + + # failing in cmake generation step: Could NOT find OpenGL (missing: OPENGL_INCLUDE_DIR) + # build_ios_cmake: + + # 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@v3 + # with: + # version: '6.4.*' + # modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity qtimageformats qtquick3d' + # setup-python: 'false' + + # - name: Install Qt + # uses: jurplel/install-qt-action@v3 + # with: + # version: '6.4.*' + # host: 'mac' + # target: 'ios' + # modules: 'qtscxml qtwebsockets qtshadertools qtconnectivity qtimageformats qtquick3d' + # setup-python: 'false' + + # - 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/ + # mkdir _build + # cd _build + # cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DQT_HOST_PATH=/Users/runner/work/AusweisApp2/Qt/6.4.3/macos -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.toolchain.cmake .. + + # - name: build cmake + # run: | + # cd _build + # cmake --build . --config ${{ matrix.build_configuration }} + + # - name: run ctest + # run: | + # cd _build + # ctest --output-on-failure -C "${{ matrix.build_configuration }}" diff --git a/.github/workflows/CI_build_libs.yml b/.github/workflows/CI_build_libs.yml new file mode 100644 index 000000000..859014b5f --- /dev/null +++ b/.github/workflows/CI_build_libs.yml @@ -0,0 +1,136 @@ +name: CI_build_libs + +on: [push, pull_request] + +jobs: + build: + + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + build_configuration: [Release] + build_platform: ["NMake Makefiles"] + + steps: + + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Add nmake + uses: ilammy/msvc-dev-cmd@v1 + + - name: generate cmake + run: | + mkdir c:\_build + cd c:\_build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" D:\a\AusweisApp2\AusweisApp2\libs + + - name: build cmake + run: | + cd c:\_build + cmake --build . --config ${{ matrix.build_configuration }} + + build_linux_cmake: + + 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-13-dev ninja-build + + - name: generate cmake + run: | + mkdir _build + cd _build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" ../libs + + - name: build cmake + run: | + cd _build + cmake --build . --config ${{ matrix.build_configuration }} + + build_linux_android_cmake: + + 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-13-dev ninja-build + sudo apt -y remove firefox microsoft-edge-stable google-chrome-stable kotlin libmono* mono-runtime + - name: generate cmake + run: | + mkdir _build + cd _build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake ../libs + + - name: build cmake + run: | + cd _build + cmake --build . --config ${{ matrix.build_configuration }} + + build_macos_cmake: + + 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 + run: | + mkdir _build + cd _build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" ../libs + + - name: build cmake + run: | + cd _build + cmake --build . --config ${{ matrix.build_configuration }} + + build_ios_cmake: + + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + build_configuration: [Release] + build_platform: ["Unix Makefiles"] + + steps: + - uses: actions/checkout@v4 + + - name: generate cmake + run: | + mkdir _build + cd _build + cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.toolchain.cmake ../libs + + - name: build cmake + run: | + cd _build + cmake --build . --config ${{ matrix.build_configuration }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c1de2b2a0..45e830a8d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v2 diff --git a/appveyor.yml b/appveyor.yml index 022dffb4b..a44bca3db 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,13 +5,13 @@ environment: - PlatformToolset: mingw-w64 platform: mingw-w64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - QTPath: C:\Qt\6.3.1\mingw_64 + QTPath: C:\Qt\6.4\mingw_64 OPENSSLPath: C:\OpenSSL-v30-Win64\bin - PlatformToolset: v142 platform: x64 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 - QTPath: C:\Qt\6.3.1\msvc2019_64 + QTPath: C:\Qt\6.4\msvc2019_64 OPENSSLPath: C:\OpenSSL-v30-Win64\bin ARCHI: amd64