-
Notifications
You must be signed in to change notification settings - Fork 14.5k
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: convert tests to use Breeze tests command #23538
Comments
@potiuk Could I pick up this issue and try? |
Yeah. It's an ambitious task though :). Just pay attention to the --parallell flag I've implemented in other commands (pull-images for one). What we've been doing so far - we run the tests in parallel for different test types when we had enough CPUs. But this was overly complex with gnu-parallel and we should do it as single breeze command with One of the goals of the task is not only to duplicate the current behaviour, but also improve it - using python we might want to do a bit better when it comes to grabbing the output of such parallel tests and displaying them to the user. The current solution "looks" good, but there were a few things that were just too complex to implement in Bash easily, but are entirely possible if we do it in Python. There are a few properties for the target solution:
The difficult thing is that it has to be "all in one go" - so it will be quite a big PR overall. Also pay attention to a change I am about to submit - I am doing a refactor of packages/modules in Breeze - so you might want to wait with some heavy implementation once it is merged. |
@potiuk This will include the changes in |
Correct. |
Could you point me to any one of the tests in ci.yml file that has to be replaced with Breeze @potiuk ? |
Sure. Any test that is currently run by "ci_run_airflow_testing.sh": https://github.com/apache/airflow/blob/main/.github/workflows/ci.yml#L1061 |
@potiuk Currently we check only if the versions are right and docker is running. We don't check in code if the container started is healthy. Do we need to check that before running command and error out in case if it is unhealthy? Also, can you elaborate to me on which container you want to check? Here you have quoted about the Cassandra issue and the Cassandra container not starting. |
@potiuk Can you point me to the place where the current output of tests is logged? |
Could i check by using |
No need really. The health checks are done in Docker-compose already AND in the "entrypoint_ci.sh" when integrations are enabled. The
Few places. This is where it gets complicated (and we need to do it simpler);
This is complex and I think we can do simpler (and nicer) using python managing those parallel runs:
If we read last 90/100 characters we should be able to find the "[ 3%]" with regexp and simply print that :). With Python we can do a lot more easily than Bash.
Rich has fantastic customizable progress bar. https://rich.readthedocs.io/en/stable/progress.html. No need to use tqdm . However the problem is that progress bar in CI output is not working the way it works in terminal. We cannot really get such nice/dynamic progress bar there, we should think more about providing progress in percentage printed from time to time. |
I think you have almost captured all the points you suggested to add in this PR Add CI-friendly progress output for tests Can you tell me what are the other pending ones to finish in this PR @potiuk ? |
Just parallell running - I have not covered that. |
This is the last big change in "Rewrite Breeze to Python". Fixes: apache#23538
This is the last big change in "Rewrite Breeze to Python". Fixes: #23538
The tests that are run in CI should use
breeze
and parallellism implemented in Python.NOTE: We should pay an attention to provide better error feedback when docker containers could not be started - see #23523
The text was updated successfully, but these errors were encountered: