name: CI on: push: branches: - '*' - '*/*' - '!master' pull_request: branches: [ develop ] jobs: compile: strategy: fail-fast: false matrix: os: [ ubuntu-20.04, ubuntu-22.04, macos-latest, windows-latest ] build: [ cli, cli-mt, cli-ansi, cli-ansi-mt, gui, gui-mt ] include: - build: cli cmake-opts: -DCOMPONENT_CLI=ON -DCOMPONENT_GUI=OFF -DFORCE_ANSI=OFF -DUSE_THREADS=OFF - build: cli-mt cmake-opts: -DCOMPONENT_CLI=ON -DCOMPONENT_GUI=OFF -DFORCE_ANSI=OFF -DUSE_THREADS=ON - build: cli-ansi cmake-opts: -DCOMPONENT_CLI=ON -DCOMPONENT_GUI=OFF -DFORCE_ANSI=ON -DUSE_THREADS=OFF - build: cli-ansi-mt cmake-opts: -DCOMPONENT_CLI=ON -DCOMPONENT_GUI=OFF -DFORCE_ANSI=ON -DUSE_THREADS=ON - build: gui cmake-opts: -DCOMPONENT_CLI=OFF -DCOMPONENT_GUI=ON -DUSE_THREADS=OFF - build: gui-mt cmake-opts: -DCOMPONENT_CLI=OFF -DCOMPONENT_GUI=ON -DUSE_THREADS=ON name: ${{matrix.os}} (${{matrix.build}}) runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v3 - name: OpenSSL OSX if: runner.os == 'macOS' shell: bash run: brew install openssl - name: Qt - Ubuntu if: startsWith(matrix.build, 'gui') && runner.os == 'Linux' shell: bash run: | sudo apt-get update if [ "${{matrix.os}}" == "ubuntu-22.04" ]; then sudo apt-get install qtbase5-dev=5.15.3+dfsg-2ubuntu0.2 else : sudo apt-get install qt5-default=5.12.8+dfsg-0ubuntu2.1 fi - name: Qt - Windows/Mac if: startsWith(matrix.build, 'gui') && runner.os != 'Linux' uses: jurplel/install-qt-action@v3 with: version: '5.15.2' - name: Configure shell: bash run: | OPTS="${{matrix.cmake-opts}}" if [ "$RUNNER_OS" == "macOS" ]; then OPTS="-D OPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 ${OPTS}" fi cmake ${OPTS} -B build - name: Build shell: bash run: cmake --build build - name: Upload artifact uses: actions/upload-artifact@v1 with: name: ${{matrix.os}}_${{matrix.build}}-build path: build