Skip to content

CI build by github actions #2

CI build by github actions

CI build by github actions #2

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: ["NMake Makefiles JOM", "Ninja"]
steps:
- name: Install nmake replacement jom
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 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", "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 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 }}
- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_PREFIX_PATH=./_build_libs/dist -DCMAKE_TOOLCHAIN_FILE=../cmake/android.toolchain.cmake -B ${{ env.BUILD_DIR_APP }}
- name: build cmake
run: |
cmake --build ${{ env.BUILD_DIR_APP }} --config ${{ matrix.build_configuration }}
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_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 }}
- name: build cmake
run: |
cmake --build ${{ env.BUILD_DIR_APP }} --config ${{ matrix.build_configuration }}
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_ios:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
build_configuration: [Release]
build_platform: ["Unix Makefiles", "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 }}" -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 }}
- name: generate cmake
run: |
cmake -G "${{ matrix.build_platform }}" -DCMAKE_BUILD_TYPE="${{ matrix.build_configuration }}" -DCMAKE_PREFIX_PATH=./_build_libs/dist -DCMAKE_TOOLCHAIN_FILE=../cmake/iOS.toolchain.cmake -B ${{ env.BUILD_DIR_APP }}
- name: build cmake
run: |
cmake --build ${{ env.BUILD_DIR_APP }} --config ${{ matrix.build_configuration }}
cmake --install ${{ env.BUILD_DIR_APP }}
- name: run ctest
run: |
ctest --test-dir ${{ env.BUILD_DIR_APP }} --output-on-failure -C "${{ matrix.build_configuration }}"