-
Notifications
You must be signed in to change notification settings - Fork 14.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
[OLD VERSION DO NOT MERGE] Split tests to core/providers/task-sdk/integration/system #43965
Conversation
Also cc: @ahidalgob @kosteev @pankajkoti @fdemiane @sc250072 except the reviewers that I pinged. This is something I worked on for last few days as first stage of #42632 - it will be quite big eventually and it is still work in progress (I am still working on fixing all the tests in breeze selective checks and need to apply changes to github workflows to run the tests but wanted to give you a heads up of what I am proposing as a change. So do not (yet) comment on subtle details - that will come, but I'd love more to get a heads-up on the whole concept that I am planning to implement for our tests, some simplifications it will bring and impact on the system tests execution (because that is something not yet in our CI and something that should be applied as a change when you will run system tests of Amazon, Google, Astronomer and Teradata people. Few general things:
This means that we can separate out providers/task_sdk, core tests as completely different jobs in CI (also it will make it easier to run locally.
(plus the usual parameters - env vars etc. configured). Let me know what you think - high level - I will work on fixing the tests and adding missing changes and updating docs accordingly in the meantime. |
And yes - it's huge - I know, but I have not figured out how to split it. |
!!!!!!!!!! Please, Please, Pretty please - committers do not approve the workflow. This is an example for Github Ticket I opened to show that I need to approve my own workflows now. !!!!!!! |
I have not looked at the code but only at the description. I like the direction it is taking, the notion of test group makes sense. Having more granular test commands makes sense and will reduce the number of options we have today for the |
The tests execution was traditionally using single "breeze testing tests" command and you could select which test to run via TEST_TYPE. However the recent move of providers and adding task_sdk necessitates splitting the tests commands into separate commands for core, providers, task_sdk, helm, integration and system. This is done via introducing "TEST_GROUP" - which determines which group of tests is being executed, and dedicated testing command for each of the groups - with "db" and "non-db" variants where applicable. Cleanup and small refactoring has been done to make it easier to reason about parameters passed down from the command line to docker and in-container pytest command. Related: apache#42632
cceee29
to
7d1f2fb
Compare
Looks good so far! Other than that I like the changes! |
It makes it quite a bit easier to handle. DB paralel tests are run using multi-processing and running parallel docker-composes. Where Non-DB parallel tests are run using xdist. This makes the two commands pretty distinct - they not only behave diferently but also they have various other parameters applicable on in one of those cases (mostly the DB). Those are the options that only make senses for DB tests:
Thanks to that teh Technically we could pass all the necessary parametters for non-db option in the "regular" (that handles both db and non-db) - parallelism, backend=none and few others, But then that makes
I experimented with it before, and that one produced the nicest and simplest set of commands to execute without specifying too many parameters. |
I moved the change to #43979. Closing this one - seems workflows have been run eventualy BTW |
The tests execution was traditionally using single "breeze testing tests" command and you could select which test to run via TEST_TYPE.
However the recent move of providers and adding task_sdk necessitates splitting the tests commands into separate commands for core, providers, task_sdk, helm, integration and system.
This is done via introducing "TEST_GROUP" - which determines which group of tests is being executed, and dedicated testing command for each of the groups - with "db" and "non-db" variants where applicable.
Cleanup and small refactoring has been done to make it easier to reason about parameters passed down from the command line to docker and in-container pytest command.
Related: #42632
^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named
{pr_number}.significant.rst
or{issue_number}.significant.rst
, in newsfragments.