The comment was originally added inb3af755254, but2898c3e0bbgreatly simplified things making the previous comment invalid. We no longer need to look at diffing main versus the PR and whether we are doing a two dot or three dot diff as we are just diffing the merge commit.
93 lines
3.0 KiB
YAML
93 lines
3.0 KiB
YAML
name: "Check code formatting"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- 'users/**'
|
|
|
|
jobs:
|
|
code_formatter:
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 30
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
|
|
cancel-in-progress: true
|
|
if: github.repository == 'llvm/llvm-project'
|
|
steps:
|
|
- name: Fetch LLVM sources
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
fetch-depth: 2
|
|
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1
|
|
with:
|
|
separator: ","
|
|
skip_initial_fetch: true
|
|
base_sha: 'HEAD~1'
|
|
sha: 'HEAD'
|
|
|
|
# We need to pull the script from the main branch, so that we ensure
|
|
# we get the latest version of this script.
|
|
- name: Fetch code formatting utils
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
repository: ${{ github.repository }}
|
|
ref: ${{ github.base_ref }}
|
|
sparse-checkout: |
|
|
llvm/utils/git/requirements_formatting.txt
|
|
llvm/utils/git/code-format-helper.py
|
|
sparse-checkout-cone-mode: false
|
|
path: code-format-tools
|
|
|
|
- name: "Listed files"
|
|
env:
|
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
run: |
|
|
echo "Formatting files:"
|
|
echo "$CHANGED_FILES"
|
|
|
|
- name: Install clang-format
|
|
uses: aminya/setup-cpp@17c11551771948abc5752bbf3183482567c7caf0 # v1.1.1
|
|
with:
|
|
clangformat: 19.1.6
|
|
|
|
- name: Setup Python env
|
|
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
|
|
with:
|
|
python-version: '3.11'
|
|
cache: 'pip'
|
|
cache-dependency-path: 'code-format-tools/llvm/utils/git/requirements_formatting.txt'
|
|
|
|
- name: Install python dependencies
|
|
run: pip install -r code-format-tools/llvm/utils/git/requirements_formatting.txt
|
|
|
|
- name: Run code formatter
|
|
env:
|
|
GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
START_REV: ${{ github.event.pull_request.base.sha }}
|
|
END_REV: ${{ github.event.pull_request.head.sha }}
|
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
# Create an empty comments file so the pr-write job doesn't fail.
|
|
run: |
|
|
echo "[]" > comments &&
|
|
python ./code-format-tools/llvm/utils/git/code-format-helper.py \
|
|
--write-comment-to-file \
|
|
--token ${{ secrets.GITHUB_TOKEN }} \
|
|
--issue-number $GITHUB_PR_NUMBER \
|
|
--start-rev HEAD~1 \
|
|
--end-rev HEAD \
|
|
--changed-files "$CHANGED_FILES"
|
|
|
|
- uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 #v4.3.0
|
|
if: always()
|
|
with:
|
|
name: workflow-args
|
|
path: |
|
|
comments
|