mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 05:20:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			148 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
	
		
			4.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: clang-tidy-review
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - 'develop'
 | |
| 
 | |
| concurrency:
 | |
|   # Cancel in-progress jobs for the same pull request
 | |
|   group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
 | |
|   cancel-in-progress: true
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     strategy:
 | |
|       matrix:
 | |
|         include:
 | |
|           - name: linux_clang-tidy_x64
 | |
|             os: ubuntu-24.04
 | |
|             build_type: Release
 | |
|             env_cc: clang-18
 | |
|             env_cxx: clang++-18
 | |
|             qt_version: 6.8.3
 | |
|             qt_arch_aqt: linux_gcc_64
 | |
|             qt_modules: qtimageformats qtmultimedia qtpositioning qtserialport
 | |
|             qt_tools: ''
 | |
|             conan_package_manager: --conf tools.system.package_manager:mode=install --conf tools.system.package_manager:sudo=True
 | |
|             conan_profile: scwx-linux_clang-18
 | |
|             compiler_packages: clang-18 clang-tidy-18
 | |
|             clang_tidy_binary: clang-tidy-18
 | |
|     name: ${{ matrix.name }}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     env:
 | |
|       CC: ${{ matrix.env_cc }}
 | |
|       CXX: ${{ matrix.env_cxx }}
 | |
|     steps:
 | |
| 
 | |
|     - name: Checkout
 | |
|       uses: actions/checkout@v4
 | |
|       with:
 | |
|         path: source
 | |
|         submodules: recursive
 | |
| 
 | |
|     - name: Checkout clang-tidy-review Repository
 | |
|       uses: actions/checkout@v4
 | |
|       with:
 | |
|         repository: ZedThree/clang-tidy-review
 | |
|         ref: v0.20.1
 | |
|         path: clang-tidy-review
 | |
| 
 | |
|     - name: Install Qt
 | |
|       uses: jdpurcell/install-qt-action@v5
 | |
|       env:
 | |
|         AQT_CONFIG: ${{ github.workspace }}/source/tools/aqt-settings.ini
 | |
|       with:
 | |
|         version: ${{ matrix.qt_version }}
 | |
|         arch: ${{ matrix.qt_arch_aqt }}
 | |
|         modules: ${{ matrix.qt_modules }}
 | |
|         tools: ${{ matrix.qt_tools }}
 | |
| 
 | |
|     - name: Setup Ubuntu Environment
 | |
|       if: ${{ startsWith(matrix.os, 'ubuntu') }}
 | |
|       shell: bash
 | |
|       run: |
 | |
|         sudo apt-get install doxygen \
 | |
|                              libfuse2 \
 | |
|                              ninja-build \
 | |
|                              ${{ matrix.compiler_packages }}
 | |
| 
 | |
|     - name: Setup Python Environment
 | |
|       shell: pwsh
 | |
|       run: |
 | |
|         pip install geopandas `
 | |
|                     GitPython `
 | |
|                     conan
 | |
|         pip install --break-system-packages clang-tidy-review/post/clang_tidy_review
 | |
| 
 | |
|     - name: Cache Conan Packages
 | |
|       uses: actions/cache@v4
 | |
|       with:
 | |
|         path: ~/.conan2
 | |
|         key: build-${{ matrix.conan_profile }}-${{ hashFiles('./source/conanfile.py', './source/tools/conan/profiles/*') }}
 | |
| 
 | |
|     - name: Install Conan Packages
 | |
|       shell: pwsh
 | |
|       run: |
 | |
|         conan config install `
 | |
|           ./source/tools/conan/profiles/${{ matrix.conan_profile }} `
 | |
|           -tf profiles
 | |
|         mkdir build
 | |
|         cd build
 | |
|         mkdir conan
 | |
|         conan install ../source/ `
 | |
|           --remote conancenter `
 | |
|           --build missing `
 | |
|           --profile:all ${{ matrix.conan_profile }} `
 | |
|           --settings:all build_type=${{ matrix.build_type }} `
 | |
|           --output-folder ./conan/ `
 | |
|           ${{ matrix.conan_package_manager }}
 | |
| 
 | |
|     - name: Autogenerate
 | |
|       shell: pwsh
 | |
|       run: |
 | |
|         cd build
 | |
|         cmake ../source/ `
 | |
|           -G Ninja `
 | |
|           -DCMAKE_BUILD_TYPE="${{ matrix.build_type }}" `
 | |
|           -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="${{ github.workspace }}/source/external/cmake-conan/conan_provider.cmake" `
 | |
|           -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/supercell-wx" `
 | |
|           -DCONAN_HOST_PROFILE="${{ matrix.conan_profile }}" `
 | |
|           -DCONAN_BUILD_PROFILE="${{ matrix.conan_profile }}" `
 | |
|           -DCMAKE_EXPORT_COMPILE_COMMANDS=on
 | |
|         ninja scwx-qt_generate_counties_db `
 | |
|               scwx-qt_generate_versions `
 | |
|               scwx-qt_autogen
 | |
| 
 | |
|     - name: Code Review
 | |
|       id: review
 | |
|       shell: bash
 | |
|       run: |
 | |
|         cd source
 | |
|         review --clang_tidy_binary=${{ matrix.clang_tidy_binary }} \
 | |
|                --token=${{ github.token }} \
 | |
|                --repo='${{ github.repository }}' \
 | |
|                --pr='${{ github.event.pull_request.number }}' \
 | |
|                --build_dir='../build' \
 | |
|                --base_dir='${{ github.workspace }}/source' \
 | |
|                --clang_tidy_checks='' \
 | |
|                --config_file='' \
 | |
|                --include='*.[ch],*.[ch]xx,*.[chi]pp,*.[ch]++,*.cc,*.hh' \
 | |
|                --exclude='' \
 | |
|                --apt-packages='' \
 | |
|                --cmake-command='' \
 | |
|                --max-comments=25 \
 | |
|                --lgtm-comment-body='' \
 | |
|                --split_workflow=true \
 | |
|                --annotations=false \
 | |
|                --parallel=0
 | |
|         rsync -avzh --ignore-missing-args clang-tidy-review-output.json ../
 | |
|         rsync -avzh --ignore-missing-args clang-tidy-review-metadata.json ../
 | |
|         rsync -avzh --ignore-missing-args clang_fixes.json ../
 | |
| 
 | |
|     - name: Upload Review
 | |
|       uses: ZedThree/clang-tidy-review/upload@v0.21.0
 | |
| 
 | |
|     - name: Status Check
 | |
|       if: steps.review.outputs.total_comments > 0
 | |
|       run: exit 1
 | 
