# Inspired by LLVM's pr-code-format.yml at # https://github.com/llvm/llvm-project/blob/main/.github/workflows/pr-code-format.yml name: Check code formatting on: pull_request: branches: - main jobs: code_formatter: runs-on: [self-hosted, X64] if: github.repository == 'FEX-Emu/FEX' steps: - name: Checkout uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Checkout through merge base uses: rmacklin/fetch-through-merge-base@v0 timeout-minutes: 3 with: base_ref: ${{ github.event.pull_request.base.ref }} head_ref: ${{ github.event.pull_request.head.sha }} deepen_length: 500 - name: Get changed files run: | BASE=$(git merge-base main HEAD) FILES=$(git diff --name-only "$BASE" | tr '\n' ',' | sed 's/,$//') echo "CHANGED_FILES=$FILES" >> $GITHUB_ENV echo "Changed files:" echo "$FILES" - name: Check git-clang-format-19 exists run: which git-clang-format-19 - name: Setup Python env uses: actions/setup-python@v4 with: python-version: 3.11 cache: pip cache-dependency-path: ./External/code-format-helper/requirements_formatting.txt - name: Install python dependencies run: pip install -r ./External/code-format-helper/requirements_formatting.txt - name: Run code formatter env: CLANG_FORMAT_PATH: git-clang-format-19 GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }} START_REV: ${{ github.event.pull_request.base.sha }} END_REV: ${{ github.event.pull_request.head.sha }} run: | python ./External/code-format-helper/code-format-helper.py \ --repo "FEX-Emu/FEX" \ --issue-number "$GITHUB_PR_NUMBER" \ --start-rev "$START_REV" \ --end-rev "$END_REV" \ --changed-files "$CHANGED_FILES"