Skip to content

Conversation

@potiuk
Copy link
Member

@potiuk potiuk commented Oct 19, 2025

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.


^ 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 airflow-core/newsfragments.

@boring-cyborg boring-cyborg bot added area:dev-tools backport-to-v3-1-test Mark PR with this label to backport to v3-1-test branch labels Oct 19, 2025
@potiuk
Copy link
Member Author

potiuk commented Oct 19, 2025

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

@potiuk potiuk force-pushed the fix-arm-tests branch 2 times, most recently from 36e8901 to d050c22 Compare October 19, 2025 17:48
Copy link
Contributor

@bugraoz93 bugraoz93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Jarek! :)

@potiuk
Copy link
Member Author

potiuk commented Oct 19, 2025

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.
@potiuk
Copy link
Member Author

potiuk commented Oct 19, 2025

And found some other small issues - we have multi-platform RAT image ... but we forced amd even on ARM 😱

@potiuk potiuk merged commit 59089cd into main Oct 19, 2025
636 of 639 checks passed
@potiuk potiuk deleted the fix-arm-tests branch October 19, 2025 20:02
github-actions bot pushed a commit that referenced this pull request Oct 19, 2025
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>
@github-actions
Copy link

Backport successfully created: v3-1-test

Status Branch Result
v3-1-test PR Link

potiuk added a commit that referenced this pull request Oct 19, 2025
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>
@gopidesupavan
Copy link
Member

fantastic thanks for syncing :)

@potiuk
Copy link
Member Author

potiuk commented Oct 20, 2025

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.

nailo2c pushed a commit to nailo2c/airflow that referenced this pull request Oct 20, 2025
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.
TyrellHaywood pushed a commit to TyrellHaywood/airflow that referenced this pull request Oct 22, 2025
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools backport-to-v3-1-test Mark PR with this label to backport to v3-1-test branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants