epaew/eslint-plugin-filenames-simple

View on GitHub
.github/workflows/git-diff.yaml

Summary

Maintainability
Test Coverage
name: git diff

on:
  pull_request:
    branches:
      - master

jobs:
  list-diff:
    name: Fetch changed file names
    if: "!contains(github.event.pull_request.labels.*.name, 'dependencies')"
    runs-on: ubuntu-latest
    outputs:
      result: ${{ steps.changed-files.outputs.diff }}
    steps:
      - uses: actions/checkout@v4
      - name: Fetch base branch
        run: git fetch --prune --depth=1 origin ${{ github.base_ref }}

      - name: Fetch changed file names
        id: changed-files
        run: |
          echo "diff=$(git diff --diff-filter=d --name-only origin/${{ github.base_ref }} | tr '\n' ' ')" >> $GITHUB_OUTPUT

  check-files-included:
    name: Check ${{ matrix.target }} is/are changed
    runs-on: ubuntu-latest
    needs: list-diff
    strategy:
      fail-fast: false
      matrix:
        include:
          - target: CHANGELOG.md
            when: ${{ contains(needs.list-diff.outputs.result, 'src') }}
          - target: docs/rules/.*
            when: ${{ contains(needs.list-diff.outputs.result, 'src/rules') }}
    steps:
      - uses: actions/checkout@v4
        if: ${{ matrix.when }}
      - name: Fetch base branch
        if: ${{ matrix.when }}
        run: git fetch --prune --depth=1 origin ${{ github.base_ref }}

      - name: Check ${{ matrix.target }} is updated.
        if: ${{ matrix.when }}
        run: |
          git diff --diff-filter=d --name-only origin/${{ github.base_ref }} \
            | grep -E "^${{ matrix.target }}$"