# 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: Fetch FEX sources 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 id: changed-files uses: step-security/changed-files@3dbe17c78367e7d60f00d78ae6781a35be47b4a1 # v45.0.1 with: separator: "," skip_initial_fetch: true - name: "Listed files" env: CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} run: | echo "Formatting files:" echo "$CHANGED_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 }} CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} 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"