diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 6af3fbcf..7389704c 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -1,11 +1,32 @@ -name: pre-commit +name: Pre-Commit Checks on: [push, pull_request] jobs: pre-commit: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 - - uses: pre-commit/action@v3.0.1 + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install pre-commit + run: pip install pre-commit + + - name: Run pre-commit hooks + run: | + git fetch origin main || git fetch origin master + base_commit=$(git rev-parse --verify origin/main || git rev-parse --verify origin/master || echo "") + if [ -z "$base_commit" ]; then + files=$(git ls-files '*.yaml' '*.md') + else + files=$(git diff --name-only $base_commit -- '*.yaml' '*.md') + fi + if [ -n "$files" ]; then + echo "$files" | xargs pre-commit run --files + else + echo "No YAML or Markdown files to lint"