@@ -229,14 +229,6 @@ outputs:
229229runs :
230230  using : " composite" 
231231  steps :
232-     - name : Install python 
233-       uses : actions/setup-python@v5 
234-       id : setup-python 
235-       with :
236-         #  use python version shipped with latest Ubuntu LTS
237-         python-version : ' 3.10' 
238-         update-environment : false 
239- 
240232    - name : Install Linux clang dependencies 
241233      if : runner.os == 'Linux' 
242234      shell : bash 
@@ -261,82 +253,89 @@ runs:
261253        ln -s "$(brew --prefix llvm@${{ inputs.version }})/bin/clang-format" "/usr/local/bin/clang-format-${{ inputs.version }}" 
262254        ln -s "$(brew --prefix llvm@${{ inputs.version }})/bin/clang-tidy" "/usr/local/bin/clang-tidy-${{ inputs.version }}" 
263255
264-      - name : Setup python venv  (Unix) 
256+      - name : Setup cpp-linter dependencies  (Unix) 
265257      if : runner.os == 'Linux' || runner.os == 'macOS' 
266258      shell : bash 
259+       env :
260+         UV_NO_MODIFY_PATH : 1 
261+         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
262+         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
267263      run : | 
268-         ${{ steps.setup-python.outputs.python-path }} -m venv "$GITHUB_ACTION_PATH/venv" 
269-         source "$GITHUB_ACTION_PATH/venv/bin/activate" 
270-         pip install -r "$GITHUB_ACTION_PATH/requirements.txt" 
271-         clang-tools -i ${{ inputs.version }} -b 
264+         curl -LsSf https://astral.sh/uv/install.sh | sh 
265+         ${{ env.UV_INSTALL_DIR }}/uv sync --config-file "${{ env.GITHUB_ACTION_PATH }}" --group action 
266+         ${{ env.UV_INSTALL_DIR }}/uv run clang-tools -i ${{ inputs.version }} -b 
272267
273-      - name : Run cpp-linter (Unix) 
274-       id : cpp-linter-unix 
275-       if : runner.os == 'Linux' || runner.os == 'macOS' 
276-       shell : bash 
277-       run : | 
278-         source "$GITHUB_ACTION_PATH/venv/bin/activate" 
279- 
280-         cpp-linter \ 
281-          --style="${{ inputs.style }}" \ 
282-          --extensions=${{ inputs.extensions }} \ 
283-          --tidy-checks="${{ inputs.tidy-checks }}" \ 
284-          --repo-root=${{ inputs.repo-root }} \ 
285-          --version=${{ inputs.version }} \ 
286-          --verbosity=${{ inputs.verbosity }} \ 
287-          --lines-changed-only=${{ inputs.lines-changed-only }} \ 
288-          --files-changed-only=${{ inputs.files-changed-only }} \ 
289-          --thread-comments=${{ inputs.thread-comments }} \ 
290-          --no-lgtm=${{ inputs.no-lgtm }} \ 
291-          --step-summary=${{ inputs.step-summary }} \ 
292-          --ignore="${{ inputs.ignore }}" \ 
293-          --ignore-tidy="${{ inputs.ignore-tidy }}" \ 
294-          --ignore-format="${{ inputs.ignore-format }}" \ 
295-          --database=${{ inputs.database }} \ 
296-          --file-annotations=${{ inputs.file-annotations }} \ 
297-          --extra-arg="${{ inputs.extra-args }}" \ 
298-          --tidy-review="${{ inputs.tidy-review }}" \ 
299-          --format-review="${{ inputs.format-review }}" \ 
300-          --passive-reviews="${{ inputs.passive-reviews }}" \ 
301-          --jobs=${{ inputs.jobs }} 
302- 
303-      - name : Setup python venv (Windows) 
268+      - name : Setup cpp-linter dependencies (Windows) 
304269      if : runner.os == 'Windows' 
305270      shell : pwsh 
271+       env :
272+         UV_NO_MODIFY_PATH : 1 
273+         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
274+         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
306275      run : | 
307-         ${{ steps.setup-python.outputs.python-path }} -m venv "$env:GITHUB_ACTION_PATH/venv" 
308-         Invoke-Expression -Command "$env:GITHUB_ACTION_PATH/venv/Scripts/Activate.ps1" 
309-         pip install -r "$env:GITHUB_ACTION_PATH/requirements.txt" 
310-         clang-tools -i ${{ inputs.version }} -b 
276+         powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.8.9/install.ps1 | iex" 
277+         ${{ env.UV_INSTALL_DIR }}/uv sync --config-file "${{ env.GITHUB_ACTION_PATH }}" --group action 
278+         ${{ env.UV_INSTALL_DIR }}/uv run clang-tools -i ${{ inputs.version }} -b 
279+ 
280+      - name : Run cpp-linter (Unix) 
281+       if : runner.os == 'Linux' || runner.os == 'macOS' 
282+       id : cpp-linter-unix 
283+       shell : bash 
284+       env :
285+         UV_PROJECT_ENVIRONMENT : ${{ github.action_path }} 
286+         UV_INSTALL_DIR : ${{ github.action_path }}/bin 
287+       run : >- 
288+         ${{ env.UV_INSTALL_DIR }}/uv run 
289+         cpp-linter 
290+         --style="${{ inputs.style }}" 
291+         --extensions=${{ inputs.extensions }} 
292+         --tidy-checks="${{ inputs.tidy-checks }}" 
293+         --repo-root=${{ inputs.repo-root }} 
294+         --version=${{ inputs.version }} 
295+         --verbosity=${{ inputs.verbosity }} 
296+         --lines-changed-only=${{ inputs.lines-changed-only }} 
297+         --files-changed-only=${{ inputs.files-changed-only }} 
298+         --thread-comments=${{ inputs.thread-comments }} 
299+         --no-lgtm=${{ inputs.no-lgtm }} 
300+         --step-summary=${{ inputs.step-summary }} 
301+         --ignore="${{ inputs.ignore }}" 
302+         --ignore-tidy="${{ inputs.ignore-tidy }}" 
303+         --ignore-format="${{ inputs.ignore-format }}" 
304+         --database=${{ inputs.database }} 
305+         --file-annotations=${{ inputs.file-annotations }} 
306+         --extra-arg="${{ inputs.extra-args }}" 
307+         --tidy-review="${{ inputs.tidy-review }}" 
308+         --format-review="${{ inputs.format-review }}" 
309+         --passive-reviews="${{ inputs.passive-reviews }}" 
310+         --jobs=${{ inputs.jobs }} 
311311
312312     - name : Run cpp-linter (Windows) 
313313      id : cpp-linter-windows 
314-       if : runner.os == 'Windows' 
315314      shell : pwsh 
316-       run :  | 
317-         Invoke-Expression -Command "$env:GITHUB_ACTION_PATH/venv/Scripts/Activate.ps1"  
318- 
319-         $app = 'cpp-linter' +  
320-         ' --style=" ${{ inputs.style  }}"' +  
321-         ' --extensions=${{ inputs.extensions }}' +  
322-         ' --tidy-checks ="${{ inputs.tidy-checks  }}"' +  
323-         ' --repo-root =${{ inputs.repo-root  }}' +  
324-         ' --version= ${{ inputs.version  }}' +  
325-         ' --verbosity =${{ inputs.verbosity  }}' +  
326-         ' --lines-changed-only =${{ inputs.lines-changed-only  }}' +  
327-         ' --files-changed-only =${{ inputs.files-changed-only  }}' +  
328-         ' --thread-comments =${{ inputs.thread-comments  }}' +  
329-         ' --no-lgtm =${{ inputs.no-lgtm  }}' +  
330-         ' --step-summary =${{ inputs.step-summary  }}' +  
331-         ' --ignore=" ${{ inputs.ignore  }}"' +  
332-         ' --ignore-tidy=" ${{ inputs.ignore-tidy  }}"' +  
333-         '  --ignore-format ="${{ inputs.ignore-format  }}"' +  
334-         ' --database= ${{ inputs.database  }}' +  
335-         ' --file-annotations= ${{ inputs.file-annotations  }}' +  
336-         ' --extra-arg=" ${{ inputs.extra-args  }}"' +  
337-         ' --tidy-review=" ${{ inputs.tidy-review  }}"' +  
338-         ' --format-review ="${{ inputs.format-review  }}"' +  
339-         ' --passive-reviews ="${{ inputs.passive-reviews  }}"' +  
340-         ' --jobs= ${{ inputs.jobs  }}'  
341- 
342-         Invoke-Expression -Command $app  
315+       env : 
316+         UV_PROJECT_ENVIRONMENT :  ${{ github.action_path }} 
317+          UV_INSTALL_DIR :  ${{ github.action_path }}/bin 
318+       run :  >- 
319+         ${{ env.UV_INSTALL_DIR  }}/uv run  
320+         cpp-linter  
321+         --style ="${{ inputs.style  }}" 
322+         --extensions =${{ inputs.extensions  }} 
323+         --tidy-checks=" ${{ inputs.tidy-checks  }}"  
324+         --repo-root =${{ inputs.repo-root  }} 
325+         --version =${{ inputs.version  }} 
326+         --verbosity =${{ inputs.verbosity  }} 
327+         --lines-changed-only =${{ inputs.lines-changed-only  }} 
328+         --files-changed-only =${{ inputs.files-changed-only  }} 
329+         --thread-comments =${{ inputs.thread-comments  }} 
330+         --no-lgtm= ${{ inputs.no-lgtm  }} 
331+         --step-summary= ${{ inputs.step-summary  }} 
332+         --ignore="${{ inputs.ignore }}" 
333+         --ignore-tidy=" ${{ inputs.ignore-tidy  }}"  
334+         --ignore-format=" ${{ inputs.ignore-format  }}"  
335+         --database= ${{ inputs.database  }} 
336+         --file-annotations= ${{ inputs.file-annotations  }} 
337+         --extra-arg ="${{ inputs.extra-args  }}" 
338+         --tidy-review ="${{ inputs.tidy-review  }}" 
339+         --format-review=" ${{ inputs.format-review  }}"  
340+         --passive-reviews="${{ inputs.passive-reviews }}" 
341+         --jobs=${{ inputs.jobs }}  
0 commit comments