name: CI on: workflow_dispatch: push: branches: - 'develop' pull_request: branches: - 'develop' concurrency: # Cancel in-progress jobs for the same pull request group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build: strategy: fail-fast: false matrix: include: - name: win64_msvc2022 os: windows-2022 build_type: Release env_cc: '' env_cxx: '' compiler: msvc msvc_arch: x64 msvc_version: 2022 qt_version: 6.5.3 qt_arch: win64_msvc2019_64 qt_modules: qtimageformats qt_tools: '' conan_arch: x86_64 conan_compiler: Visual Studio conan_compiler_version: 17 conan_compiler_runtime: --settings compiler.runtime=MD conan_package_manager: '' artifact_suffix: windows-x64 - name: linux64_gcc os: ubuntu-22.04 build_type: Release env_cc: gcc-11 env_cxx: g++-11 compiler: gcc qt_version: 6.5.3 qt_arch: gcc_64 qt_modules: qtimageformats qt_tools: '' conan_arch: x86_64 conan_compiler: gcc conan_compiler_version: 11 conan_compiler_runtime: '' conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True artifact_suffix: linux-x64 name: ${{ matrix.name }} env: CC: ${{ matrix.env_cc }} CXX: ${{ matrix.env_cxx }} runs-on: ${{ matrix.os }} steps: - name: Setup run: git config --global core.longpaths true - name: Checkout uses: actions/checkout@v4 with: path: source submodules: recursive - name: Install Qt uses: jurplel/install-qt-action@v3 with: version: ${{ matrix.qt_version }} arch: ${{ matrix.qt_arch }} modules: ${{ matrix.qt_modules }} tools: ${{ matrix.qt_tools }} - name: Setup MSVC if: matrix.compiler == 'msvc' uses: ilammy/msvc-dev-cmd@v1 with: arch: ${{ matrix.msvc_arch }} vsversion: ${{ matrix.msvc_version }} - name: Setup Ubuntu Environment if: matrix.os == 'ubuntu-22.04' shell: bash run: | sudo apt-get install doxygen \ ninja-build - name: Setup Python Environment shell: pwsh run: | pip install geopandas ` GitPython - name: Install Conan Packages shell: pwsh run: | pip install "conan<2.0" conan profile new default --detect conan install ./source/ ` --remote conancenter ` --build missing ` --settings arch=${{ matrix.conan_arch }} ` --settings build_type=${{ matrix.build_type }} ` --settings compiler="${{ matrix.conan_compiler }}" ` --settings compiler.version=${{ matrix.conan_compiler_version }} ` ${{ matrix.conan_compiler_runtime }} ` ${{ matrix.conan_package_manager }} - name: Build Supercell Wx shell: pwsh run: | mkdir build cd build cmake ../source/ ` -G Ninja ` -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" ` -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" ninja supercell-wx wxtest - name: Separate Debug Symbols (Linux) if: matrix.os == 'ubuntu-22.04' shell: bash run: | cd build/ cd bin/ objcopy --only-keep-debug supercell-wx supercell-wx.debug objcopy --strip-debug --strip-unneeded supercell-wx cd .. cd lib/ objcopy --only-keep-debug libQMapLibreGL.so libQMapLibreGL.so.debug objcopy --strip-debug --strip-unneeded libQMapLibreGL.so - name: Install Supercell Wx shell: pwsh run: | cd build cmake --install . --component supercell-wx - name: Collect Artifacts if: matrix.os == 'ubuntu-22.04' shell: bash run: | pushd supercell-wx/ cd lib/ ln -s libssl.so.3 libssl.so cd .. mkdir -p plugins/sqldrivers/ cd plugins/sqldrivers/ cp "${RUNNER_WORKSPACE}/Qt/${{ matrix.qt_version }}/${{ matrix.qt_arch }}/plugins/sqldrivers/libqsqlite.so" . popd tar -czf supercell-wx-${{ matrix.artifact_suffix }}.tar.gz supercell-wx/ - name: Upload Artifacts (Windows) if: matrix.os == 'windows-2022' uses: actions/upload-artifact@v3 with: name: supercell-wx-${{ matrix.artifact_suffix }} path: ${{ github.workspace }}/supercell-wx/ - name: Upload Debug Artifacts (Windows) if: matrix.os == 'windows-2022' uses: actions/upload-artifact@v3 with: name: supercell-wx-debug-${{ matrix.artifact_suffix }} path: ${{ github.workspace }}/build/bin/*.pdb - name: Upload Artifacts (Linux) if: matrix.os == 'ubuntu-22.04' uses: actions/upload-artifact@v3 with: name: supercell-wx-${{ matrix.artifact_suffix }} path: ${{ github.workspace }}/supercell-wx-${{ matrix.artifact_suffix }}.tar.gz - name: Upload Debug Artifacts (Linux) if: matrix.os == 'ubuntu-22.04' uses: actions/upload-artifact@v3 with: name: supercell-wx-debug-${{ matrix.artifact_suffix }} path: | ${{ github.workspace }}/build/bin/*.debug ${{ github.workspace }}/build/lib/*.debug - name: Test Supercell Wx working-directory: ${{ github.workspace }}/build env: MAPBOX_API_KEY: ${{ secrets.MAPBOX_API_KEY }} MAPTILER_API_KEY: ${{ secrets.MAPTILER_API_KEY }} run: ctest -C ${{ matrix.build_type }} --exclude-regex mbgl-test-runner