Hi circleCI experts,
By reading the source code of path-filtering/filter
orb source code: CircleCI Developer Hub - circleci/path-filtering, i realized that it is essentially using python regex
to filter/mapping files and determine whether or not triggering certain build jobs, I’d like it to support slightly more granular control:
- If requirements.txt or any python files changes, run build-python-job
- If package.json or any Typescript/javascript files changes, run build-frontend-job
jobs:
- path-filtering/filter:
name: check-updated-files
base-revision: main
mapping: |
my-service/requirements.txt|my-service/.*py build-python-job true
my-service/package.json|my-service/.*ts|my-service/.*js build-frontend-job true
config-path: .circleci/continue-config.yml
I guess it cannot be as simple as 1 by 1:
my-service/requirements.txt build-python-job true
my-service/.*py build-python-job true
my-service/package.json build-frontend-job true
my-service/.*ts build-frontend-job true
my-service/.*js build-frontend-job true
Because if both package.json, *.js updated (which is very common), the job will be running 2 times which is a waste of time/resource.
As of now, none of the above worked for me, check-updated-files seems ONLY recognize my-service/.*
but NOT my-service/.*py
, I searched in github and couldn’t find any working examples for this, request some guidance here.