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..a3542338e --- /dev/null +++ b/.github/workflows/CI_build.yml @@ -0,0 +1,221 @@ +name: CI_build + +on: [push, pull_request] + +jobs: + build: + + 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@v3 + + - 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@v3 + + - 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 }}" + + build_linux_android_cmake: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + build_configuration: [Release] + build_platform: ["Unix Makefiles"] + + steps: + - uses: actions/checkout@v3 + + - 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@v3 + + - 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 }}" + + build_ios_cmake: + + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + build_configuration: [Release] + build_platform: ["Unix Makefiles"] + + steps: + - uses: actions/checkout@v3 + + - 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 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.2/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..4e2056527 --- /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@v3 + + - 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@v3 + + - 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-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@v3 + + - 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-dev ninja-build + + - 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@v3 + + - 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@v3 + + - 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/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