How To Only Run GitHub Actions Steps If Files Change

If you want to conditionally run a GitHub Action step or job when files change, then you’ll want to use the paths changes filter action.

You can’t use GitHub’s built-in path filters because it only operates on entire workflows.

Here’s what it looks like:

- uses: dorny/paths-filter@v3
  id: changes
  with:
    filters: |
      tf:
        - 'deploy/tf/**'      

- run: terraform apply ...
  if: steps.changes.tf.src == 'true'

Like the above example, my most common use case for path filters is only to run my Terraform when there are changes.

Using path filters shaves off a minute or two off of my pipelines, which reduces cycle time and costs.


Join the 80/20 DevOps Newsletter

If you're an engineering leader or developer, you should subscribe to my 80/20 DevOps Newsletter. Give me 1 minute of your day, and I'll teach you essential DevOps skills. I cover topics like Kubernetes, AWS, Infrastructure as Code, and more.

Not sure yet? Check out the archive.

Unsubscribe at any time.