100 lines · yaml
1name: "Code lint"2 3permissions:4 contents: read5 6on:7 pull_request:8 branches:9 - main10 - 'users/**'11 paths:12 - 'clang-tools-extra/clang-tidy/**'13 - '.github/workflows/pr-code-lint.yml'14 15jobs:16 code_linter:17 if: github.repository_owner == 'llvm'18 runs-on: ubuntu-24.0419 defaults:20 run:21 shell: bash22 container:23 image: 'ghcr.io/llvm/ci-ubuntu-24.04-lint'24 timeout-minutes: 6025 concurrency:26 group: ${{ github.workflow }}-${{ github.ref }}27 cancel-in-progress: true28 steps:29 - name: Fetch LLVM sources30 uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.031 with:32 fetch-depth: 233 34 - name: Get changed files35 id: changed-files36 uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.037 with:38 separator: ","39 skip_initial_fetch: true40 base_sha: 'HEAD~1'41 sha: 'HEAD'42 43 - name: Listed files44 env:45 CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}46 run: |47 echo "Changed files:"48 echo "$CHANGED_FILES"49 50 # TODO: create special mapping for 'codegen' targets, for now build predefined set51 # TODO: add entrypoint in 'compute_projects.py' that only adds a project and its direct dependencies52 - name: Configure and CodeGen53 run: |54 git config --global --add safe.directory '*'55 56 . <(git diff --name-only HEAD~1...HEAD | python3 .ci/compute_projects.py)57 58 if [[ "${projects_to_build}" == "" ]]; then59 echo "No projects to analyze"60 exit 061 fi62 63 cmake -G Ninja \64 -B build \65 -S llvm \66 -DLLVM_ENABLE_ASSERTIONS=OFF \67 -DLLVM_ENABLE_PROJECTS="${projects_to_build}" \68 -DCMAKE_CXX_COMPILER=clang++ \69 -DCMAKE_C_COMPILER=clang \70 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \71 -DLLVM_INCLUDE_TESTS=OFF \72 -DCLANG_INCLUDE_TESTS=OFF \73 -DCMAKE_BUILD_TYPE=Release74 75 ninja -C build \76 clang-tablegen-targets \77 genconfusable # for "ConfusableIdentifierCheck.h"78 79 - name: Run code linter80 env:81 GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}82 CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}83 run: |84 echo "[]" > comments &&85 python3 llvm/utils/git/code-lint-helper.py \86 --token ${{ secrets.GITHUB_TOKEN }} \87 --issue-number $GITHUB_PR_NUMBER \88 --start-rev HEAD~1 \89 --end-rev HEAD \90 --verbose \91 --changed-files "$CHANGED_FILES"92 93 - name: Upload results94 uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.095 if: always()96 with:97 name: workflow-args98 path: |99 comments100