forked from argoproj/argo-workflows
-
Notifications
You must be signed in to change notification settings - Fork 0
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
ci: only run jobs when relevant files have been changed [actions testing PR] #1
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- e.g. don't run E2E tests if only UI or only Docs have changed - or don't run UI CI when UI has not chaged - use [`tj-actions/changed-files`](https://github.com/tj-actions/changed-files) action for this - the most popular and full featured one I could find - run `changed-files` in its own job that must run before all other jobs - have it `output` booleans for specific changes -- limit all the `changed_files` nuances, naming, syntax, etc to that one job - job `outputs` are also needed for skipping other jobs, as step outputs can't be directly accessed - see https://docs.github.com/en/actions/using-jobs/defining-outputs-for-jobs and https://docs.github.com/en/actions/learn-github-actions/contexts#needs-context - have other jobs specify it in their `needs` and then skip if not needed with `if` - use multi-output variant of `changed-files` YAML directive - so can check e2e vs docs vs UI etc - use `any_modified` as that includes added, copied, modified, renamed, and deleted (ACMRD) - `any_changed` does not include deletions NOTE: I realized after that `docs` isn't a job, `lint` is, so there's gonna be some follow-up commits - and well need to test anyway too - will also include the `all` list _after_ testing, since it would make everything run Signed-off-by: Anton Gilgur <[email protected]>
- also tiny renames Signed-off-by: Anton Gilgur <[email protected]>
agilgur5
force-pushed
the
ci-skip-steps-changed-files
branch
from
October 14, 2023 16:38
eb34916
to
aafd917
Compare
Signed-off-by: Anton Gilgur <[email protected]>
agilgur5
changed the title
[testing] ci: only run jobs when relevant files have been changed
ci: only run jobs when relevant files have been changed [actions testing PR]
Oct 14, 2023
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
- list merging is not supported in YAML natively, but `changed-files` appears to support it? https://github.com/tj-actions/changed-files/blob/2a10bef1b42044172f2e64d40beeb8fbad792438/test/changed-files.yml#L8-L11 Signed-off-by: Anton Gilgur <[email protected]>
- both can run independently of each other and independently of tests - they should fail fast if the other one fails though, I suppose - otherwise this breaks some of the checks, since if tests are skipped, then codegen and lint are skipped too - or, well, that's my hypothesis at least -- will test by pushing this Signed-off-by: Anton Gilgur <[email protected]>
- so now only lint should run... Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
This reverts commit 34671d7. Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
Signed-off-by: Anton Gilgur <[email protected]>
3 tasks
This was a testing PR; now that everything is confirmed working, I opened an upstream PR: argoproj#12006 |
Repository owner
locked as resolved and limited conversation to collaborators
Jul 12, 2024
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes argoproj#10156
Fixes argoproj#10265
Motivation
Make CI run faster for certain kinds of PRs, use less CI minutes (and just reduce unnecessary compute in general), and limit the blast radius of flaky tests as well
Modifications
Changed Files checks
use
tj-actions/changed-files
action for thisrun
changed-files
in its own job that must run before all other jobsoutput
booleans for specific changes -- limit all thechanged_files
nuances, naming, syntax, etc to that one joboutputs
are also needed for skipping other jobs, as step outputs can't be directly accessedhave other jobs specify it in their
needs
and then skip if not needed withif
use multi-output variant of
changed-files
YAML directivechanged-files
supports a YAML variant with list anchoring/aliasinguse
any_modified
as that includes added, copied, modified, renamed, and deleted (ACMRD)any_changed
does not include deletionsChanges to
needs
forcodegen
andlint
both can run independently of each other and independently of tests
otherwise this breaks some of the checks, since if tests are skipped, then codegen and lint are skipped too
Changes to Status Checks
Note that due to lack of GH features such as actions/runner#952 and https://github.com/orgs/community/discussions/9141, there is a workaround embedded here for the E2E test matrix
e2e-tests
job will cause status checks for individual E2E tests to just hang indefinitelyif
for every singlestep
of the E2E tests and also check for changed files within each E2E teste2e-tests-composite-result
job aggregates all of the results as a workaroundVerification
This is the PR in my own fork that I am using for testing purposes!
Notes to Reviewers
Future Work
argoexec-image
job as well.dockerignore
etc