name: Pre-Commit Checks

on:
  pull_request:
    types: [labeled, 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: |
          sudo apt update
          sudo apt install curl -y
          sudo apt install nodejs -y
          sudo apt install npm -y

          git clone --branch 2.7.0 --depth 1 https://github.com/bitnami/readme-generator-for-helm.git
          cd ./readme-generator-for-helm
          npm install
          npm install -g @yao-pkg/pkg
          pkg . -o /usr/local/bin/readme-generator

      - 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
