mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 05:30:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			194 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			194 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| 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_toolset: 14.35
 | |
|             msvc_version: 2022
 | |
|             qt_version: 6.5.0
 | |
|             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.0
 | |
|             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@v3
 | |
|       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 }}
 | |
|         toolset: ${{ matrix.msvc_toolset }}
 | |
|         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
 | |
|       run: ctest -C ${{ matrix.build_type }} --exclude-regex mbgl-test-runner
 | 
