-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Synchronize and fix ARM CI workflows #56856
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
Conversation
|
I also run ARM job manually here from that branch: https://github.com/apache/airflow/actions/runs/18633758589 - because ARM job is not executed automatically on PR |
36e8901 to
d050c22
Compare
bugraoz93
left a comment
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.
Thanks Jarek! :)
|
ok. as suspected not all integration tests will run (no multi-platform images) https://github.com/apache/airflow/actions/runs/18634153359 -> ARM run without those. |
There were a few issues with ARM workflows: * not all jobs were run in ARM tests - we do not want to run mysql of course, but other tests should be fine to run on ARM * some conditions were not updated (we have to somehow duplicate amd and arm job definition because we run out of composite workflows - so sometimes conditions are not synced) * most importantly - we uploaded prek cache in build-info job, but that job only run on AMD, not on ARM so the ARM cache was really an AMD one (and it caused unterminated strings in doctoc installation It's not possible to upload same artifact twice in the same job and since we use prek in several jobs we should make sure that the cache is only uploaded once per job. This was the reason why it was initially uploaded in build-info job (and save-cache was set to false elsewhere). With this PR, we have save-cache in 3 places: * basic checks * static CI-image bound checks * in octopin (Python 3.11) Basic checks and static checks are mutually exclusive (controlled by basic-checks-only flag) - so we can safely upload cache in both. In all other places we only install prek with cache, but we do not save the cache as artifact.
|
And found some other small issues - we have multi-platform RAT image ... but we forced amd even on ARM 😱 |
There were a few issues with ARM workflows: * not all jobs were run in ARM tests - we do not want to run mysql of course, but other tests should be fine to run on ARM * some conditions were not updated (we have to somehow duplicate amd and arm job definition because we run out of composite workflows - so sometimes conditions are not synced) * most importantly - we uploaded prek cache in build-info job, but that job only run on AMD, not on ARM so the ARM cache was really an AMD one (and it caused unterminated strings in doctoc installation It's not possible to upload same artifact twice in the same job and since we use prek in several jobs we should make sure that the cache is only uploaded once per job. This was the reason why it was initially uploaded in build-info job (and save-cache was set to false elsewhere). With this PR, we have save-cache in 3 places: * basic checks * static CI-image bound checks * in octopin (Python 3.11) Basic checks and static checks are mutually exclusive (controlled by basic-checks-only flag) - so we can safely upload cache in both. In all other places we only install prek with cache, but we do not save the cache as artifact. (cherry picked from commit 59089cd) Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
There were a few issues with ARM workflows: * not all jobs were run in ARM tests - we do not want to run mysql of course, but other tests should be fine to run on ARM * some conditions were not updated (we have to somehow duplicate amd and arm job definition because we run out of composite workflows - so sometimes conditions are not synced) * most importantly - we uploaded prek cache in build-info job, but that job only run on AMD, not on ARM so the ARM cache was really an AMD one (and it caused unterminated strings in doctoc installation It's not possible to upload same artifact twice in the same job and since we use prek in several jobs we should make sure that the cache is only uploaded once per job. This was the reason why it was initially uploaded in build-info job (and save-cache was set to false elsewhere). With this PR, we have save-cache in 3 places: * basic checks * static CI-image bound checks * in octopin (Python 3.11) Basic checks and static checks are mutually exclusive (controlled by basic-checks-only flag) - so we can safely upload cache in both. In all other places we only install prek with cache, but we do not save the cache as artifact. (cherry picked from commit 59089cd) Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
|
fantastic thanks for syncing :) |
BTW. It's likely we could extract it to a single, composit workflow - despite limitations in the number of workflows. Maybe we should try. |
There were a few issues with ARM workflows: * not all jobs were run in ARM tests - we do not want to run mysql of course, but other tests should be fine to run on ARM * some conditions were not updated (we have to somehow duplicate amd and arm job definition because we run out of composite workflows - so sometimes conditions are not synced) * most importantly - we uploaded prek cache in build-info job, but that job only run on AMD, not on ARM so the ARM cache was really an AMD one (and it caused unterminated strings in doctoc installation It's not possible to upload same artifact twice in the same job and since we use prek in several jobs we should make sure that the cache is only uploaded once per job. This was the reason why it was initially uploaded in build-info job (and save-cache was set to false elsewhere). With this PR, we have save-cache in 3 places: * basic checks * static CI-image bound checks * in octopin (Python 3.11) Basic checks and static checks are mutually exclusive (controlled by basic-checks-only flag) - so we can safely upload cache in both. In all other places we only install prek with cache, but we do not save the cache as artifact.
There were a few issues with ARM workflows: * not all jobs were run in ARM tests - we do not want to run mysql of course, but other tests should be fine to run on ARM * some conditions were not updated (we have to somehow duplicate amd and arm job definition because we run out of composite workflows - so sometimes conditions are not synced) * most importantly - we uploaded prek cache in build-info job, but that job only run on AMD, not on ARM so the ARM cache was really an AMD one (and it caused unterminated strings in doctoc installation It's not possible to upload same artifact twice in the same job and since we use prek in several jobs we should make sure that the cache is only uploaded once per job. This was the reason why it was initially uploaded in build-info job (and save-cache was set to false elsewhere). With this PR, we have save-cache in 3 places: * basic checks * static CI-image bound checks * in octopin (Python 3.11) Basic checks and static checks are mutually exclusive (controlled by basic-checks-only flag) - so we can safely upload cache in both. In all other places we only install prek with cache, but we do not save the cache as artifact.
There were a few issues with ARM workflows:
It's not possible to upload same artifact twice in the same job and since we use prek in several jobs we should make sure that the cache is only uploaded once per job. This was the reason why it was initially uploaded in build-info job (and save-cache was set to false elsewhere). With this PR, we have save-cache in 3 places:
Basic checks and static checks are mutually exclusive (controlled by basic-checks-only flag) - so we can safely upload cache in both.
In all other places we only install prek with cache, but we do not save the cache as artifact.
^ 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.rstor{issue_number}.significant.rst, in airflow-core/newsfragments.