#
# ci-validate-pins.yml
# Validate that all of the pins files are unchanged by pinsformat.py
#

name: CI - Validate Pins Files

on:
  pull_request:
    branches:
    - bugfix-2.1.x
    # Cannot be enabled on 2.1.x until it contains the unit test framework
    #- 2.1.x
    paths:
    - 'Marlin/src/pins/*/**'
  push:
    branches:
    - bugfix-2.1.x
    # Cannot be enabled on 2.1.x until it contains the unit test framework
    #- 2.1.x
    paths:
    - 'Marlin/src/pins/*/**'

jobs:
  validate_pins_files:
    name: Validate Pins Files
    if: github.repository == 'MarlinFirmware/Marlin'

    runs-on: ubuntu-22.04

    steps:
    - name: Check out the PR
      uses: actions/checkout@v4

    - name: Cache pip
      uses: actions/cache@v4
      with:
        path: ~/.cache/pip
        key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-pip-

    - name: Select Python 3.9
      uses: actions/setup-python@v5
      with:
        python-version: '3.9'
        architecture: 'x64'

    - name: Validate all pins files
      run: |
        make validate-pins -j