How to run a CircleCI job in a github repo only if a file in the same repo is added a new entry?

1.3k Views Asked by At

I have added a job in the existing circleci workflow, I would like to run that job only if a yaml file is changed in the repo. Is there any way to do it ? TIA.

3

There are 3 best solutions below

0
On BEST ANSWER

you can detect changes in circlci build step and run job only if yml files changed

- run: |
    git show --name-only ${CIRCLE_SHA1} | grep .yml

    if [ $? -eq 0 ]; then 
      echo "yml files changed" 
      // Do your job steps
    fi

0
On

Yes this is now possible. CircleCI now has support for dynamic configs (instead of a single static config file), and with that a path-filtering orb is available that can detect changes under a folder and set pipeline parameters accordingly. You can set a pipeline parameter when changes are detected under a folder and add a when condition attribute with that pipeline parameter in the job.

See https://circleci.com/docs/2.0/using-dynamic-configuration/#execute-specific-workflows-or-steps-based-on-which-files-are-modified

1
On

No. There's no way to do that. You can follow @crack_iT's answer as that's the closest but technically the job still runs. The only option is to end the job early.