mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-11-04 06:00:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			151 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
	
		
			4.9 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 \
 | 
						|
                             wayland-protocols \
 | 
						|
                             libwayland-dev \
 | 
						|
                             libwayland-egl-backend-dev \
 | 
						|
                             ${{ 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
 |