mirror of
https://github.com/intel/llvm.git
synced 2026-01-27 14:50:42 +08:00
We were using the step security fork after the tj-actions/changed-files supply chain attack given Github disabled the repo and all our actions were failing during that time. Switch away from the fork back to the main repository to avoid an extra level of indirection until we can probably just stop using this action/roll our own.
94 lines
3.1 KiB
YAML
94 lines
3.1 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
fetch-depth: 2
|
|
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
|
|
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
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"
|
|
|
|
# The clang format version should always be upgraded to the first version
|
|
# of a release cycle (x.1.0) or the last version of a release cycle, or
|
|
# if there have been relevant clang-format backports.
|
|
- name: Install clang-format
|
|
uses: aminya/setup-cpp@17c11551771948abc5752bbf3183482567c7caf0 # v1.1.1
|
|
with:
|
|
clangformat: 21.1.0
|
|
|
|
- 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 }}
|
|
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
|