Skip to content

Action to get paths and files changed in a Pull Request event and use these for GitHub Actions matrix

Notifications You must be signed in to change notification settings

fabidick22/detect-changes-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

detect-changes-action

Action to get paths and files changed in a Pull Request event and use these for GitHub Actions matrix

Available Features

  • Get list of directories changed in a PR
  • Get list of files changed in a PR

Usage

Get a list of paths to use in a matrix of jobs (v1)
name: 'PR Detect changes'
on:
  pull_request:
    types: [synchronize, opened, reopened, labeled]
    branches:
      - main
jobs:
  changes:
    runs-on: ubuntu-latest
    outputs:
      packages: ${{ steps.filter.outputs.paths_changed }}
    steps:
      - uses: actions/checkout@v3
      - name: Annotate PR
        id: filter
        uses: fabidick22/detect-changes-action@v1
        with:
          path: "modules/"

  build:
    needs: changes
    strategy:
      matrix:
        package: ${{ fromJSON(needs.changes.outputs.packages) }}
    runs-on: ubuntu-latest
    steps:
      - run: echo '${{ matrix.package }}'

Inputs

parameter description required default
path Path false ./
token The token to use to access the GitHub API false ${{ github.token }}

Outputs

parameter description
paths_list List of changed paths, example: ["dist", "dist/data"]
file_list List of changed files, example: ["dist/main.tf", "dist/index.js"]
paths_str List of changed paths separated by , example: "dist,dist/data"
file_str List of changed files separated by , example: "dist/main.tf,dist/index.js"

Runs

This action is a node16 action.