changed-files VS paths-filter

Compare changed-files vs paths-filter and see what are their differences.

paths-filter

Conditionally run actions based on files modified by PR, feature branch or pushed commits (by dorny)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
changed-files paths-filter
6 8
1,507 1,792
6.0% -
9.8 6.2
5 days ago 19 days ago
TypeScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

changed-files

Posts with mentions or reviews of changed-files. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-08.
  • Why it is Important to Update Linters and How to Do it Right
    4 projects | dev.to | 8 Feb 2024
    We need to add two additional steps. The first one is to retrieve all new files, and the second one is to run the enhanced config only on the new files. In this example the third-party GitHub Action called changed-files is used to obtain the new files. In the GitHub Marketplace for Actions, there is a considerable number of similar actions with similar functionality. You can choose the one that suits you best, as the functionality is more or less the same for all of them.
  • Attempting a larger bug fix II - Execution
    3 projects | dev.to | 10 Dec 2023
    I determined this after dozens of attempts working with the other GitHub Action, tj-actions/changed-files which feeds a list of modified files to clang-format-lint.
  • Yarn workspaces/monorepo and CI/CD
    2 projects | /r/node | 24 Jan 2023
    GitHub actions has actions that do similar, I’ve used this one before with great success: https://github.com/tj-actions/changed-files
  • Turborepo + GitHub Actions
    2 projects | /r/node | 17 Dec 2022
    You could also clean up your changed files job by using this (https://github.com/tj-actions/changed-files) or something similar. That would at least make it easier to understand what it's supposed to be doing. You can use it to get the directories containing any changed package.json files. Then use that output as as a matrix input.
  • GitHub Actions Pitfalls
    11 projects | news.ycombinator.com | 26 Sep 2022
  • GitHub Action to run mypy on changed files only
    1 project | dev.to | 15 Jun 2022
    View on GitHub

paths-filter

Posts with mentions or reviews of paths-filter. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-16.
  • How to commit part of file in Git
    2 projects | news.ycombinator.com | 16 Feb 2024
    I also set up recently the policy to onl use merge commits on stable branch, as otherwise the path filter^1 in the workflows would not detect correctly which files changed in a PR.

    [1] https://github.com/dorny/paths-filter

  • GitHub Actions as a time-sharing supercomputer
    4 projects | news.ycombinator.com | 10 Jan 2024
    I truly don't understand why this isn't more widely discussed (I've seen several "GH Actions Gotchas" where this isn't mentioned). Many of the community actions also seem to be designed to run as short jobs to paper around missing features (for ex: https://github.com/dorny/paths-filter ), that end up eating up an enormous amount of your minutes budget.
  • Deploy Lambda only when there are code changes
    2 projects | /r/aws | 1 Mar 2023
    If that isn’t sufficient, there are a number of third party workflow steps that enable conditional builds with extra flexibility like https://github.com/dorny/paths-filter
  • Is there a GitHub Actions equivalent to CircleCI dynamic config?
    2 projects | /r/devops | 22 Jan 2023
    You can use paths-filter to give yourself a bunch of conditional outputs to test against for separate jobs.
  • Turborepo + GitHub Actions
    2 projects | /r/node | 17 Dec 2022
    That's brilliant. dorny/paths-filter looks like it can eliminate my enumerate job, and then I don't have to concern myself with all this data passing between jobs.
  • GitHub Actions Pitfalls
    11 projects | news.ycombinator.com | 26 Sep 2022
    There’s an awkward gotcha/incompatibility between “Required status checks” and workflows that get skipped [1], eg due to setting a “paths” property of a push/pull_request workflow trigger [2].

    The checks associated with the workflow don’t run and stay in a pending state, preventing the PR from being merged.

    The only workaround I’m aware of is to use an action such as paths-filter [3] instead at the job level.

    A further, related frustration/limitation - you can _only_ set the “paths” property [2] at the workflow level (i.e. not per-job), so those rules apply to all jobs in the workflow. Given that you can only build a DAG of jobs (ie “needs”) within a single workflow, it makes it quite difficult to do anything non trivial in a monorepo.

    [1]: https://docs.github.com/en/repositories/configuring-branches...

    [2]: https://docs.github.com/en/actions/using-workflows/workflow-...

    [3]: https://github.com/dorny/paths-filter

  • Configuring python linting to be part of CI/CD using GitHub actions
    4 projects | dev.to | 14 Sep 2022
    We are interested in running a linter only against the modified files. Let's say, we take a look at the provided repo, if I update dags/dummy.py I don't want to waste time and resources running the linter against main.py. For this purpose we use Paths Filter GitHub Action, which is very flexible.
  • Introducing Gistblog 🎉: Blog your little ❤️ out using GitHub Gists
    4 projects | dev.to | 6 Dec 2021
    In the spirit of the #ActionsHackathon21, you can see I'm taking advantage of the checkout action GitHub provides and the Paths Filter action by dorny to create the desired workflow. I'm also using the Gistblog Action I created for this hackathon which handles managing all the blog posts as Gists. I'd like to explore Composite actions soon to see if I can reduce all of this to a single action making setup even easier.

What are some alternatives?

When comparing changed-files and paths-filter you can also consider the following projects:

actionlint - :octocat: Static checker for GitHub Actions workflow files

runner-images - GitHub Actions runner images

Image-Optimizer-Action - A Github Action to optimize / compress images in your repository

test-reporter - Displays test results from popular testing frameworks directly in GitHub

template.github.semver - Template for Projects that use Github Actions and Hooks to enforce Semantic Versioning

travis-yml - Travis CI build config processing

ansible-lint-action - ❗️Replaced by https://github.com/marketplace/actions/run-ansible-lint

gh-valet - Valet helps facilitate the migration of Azure DevOps, CircleCI, GitLab CI, Jenkins, and Travis CI pipelines to GitHub Actions.

hello-github-actions - Create a GitHub Action and use it in a workflow.

gistblog-action - Blog your little ❤️ out using GitHub Gists.