-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(build): conditional ci #9673
feat(build): conditional ci #9673
Conversation
738cdc0
to
ba61736
Compare
ba61736
to
fa728db
Compare
ae2a6a5
to
968d91e
Compare
1cddba9
to
068d057
Compare
068d057
to
56dab62
Compare
caf97e8
to
7524f91
Compare
024a15e
to
13616cf
Compare
5b13361
to
e877f9f
Compare
- "datahub-web-react/**" | ||
- "smoke-test/tests/cypress/**" | ||
- "docker/datahub-frontend/**" | ||
ingestion: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does it make sense to add an "ingestion-base" change detector?
we have a fair bit of logic around conditionally building the ingestion-base image, and I think it might make sense to refactor that into here or docker-unified's setup job
that said, this PR is already a huge improvement as it is and this is more of a nice to have and definitely not a blocker
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Honestly I'll have to look at that logic again. There is an extra bit of complexity due to multiple stages plus full/slim. Since that was working ok as far as I know, I opted to just preserve that logic. In this PR it just kind of gets triggered all the time and its own logic maintains control over when and what to build.
echo 'matrix=["no_cypress_suite0","no_cypress_suite1","cypress_suite1","cypress_rest"]' >> $GITHUB_OUTPUT | ||
else | ||
echo 'matrix=[]' >> $GITHUB_OUTPUT | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is going to be hugely helpful
This PR introduces an action which determines which major component has changes (frontend, backend, ingestion, setup jobs). Based on the changes it will selectively run CI jobs.
In the unified workflow:
A new custom action local to this repository will maintain the mapping from file paths to major component. That action will then be used in any workflow which needs selective jobs/steps. Currently this means the primary unified image build and the build and test workflows.
For example: a frontend change would trigger the build of the frontend container and only run cypress tests.
Scenarios
No change to any major component
Frontend change only
Ingestion change only
Backend change
Checklist