name: Pre-Commit Checks on: pull_request: types: [opened, synchronize, reopened] concurrency: group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number }} cancel-in-progress: true jobs: pre-commit: runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v3 with: fetch-depth: 0 fetch-tags: true - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.11' - name: Install pre-commit run: pip install pre-commit - name: Install generate run: | curl -sSL https://github.com/cozystack/cozyvalues-gen/releases/download/v0.8.5/cozyvalues-gen-linux-amd64.tar.gz | tar -xzvf- -C /usr/local/bin/ cozyvalues-gen - 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" fi