Skip to content

CI: add Windows on ARM64 #18718

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

CI: add Windows on ARM64 #18718

wants to merge 2 commits into from

Conversation

kmilos
Copy link
Contributor

@kmilos kmilos commented Apr 22, 2025

@kmilos kmilos marked this pull request as draft April 22, 2025 11:29
@kmilos kmilos marked this pull request as ready for review April 22, 2025 11:40
@kmilos
Copy link
Contributor Author

kmilos commented Apr 22, 2025

MSYS2 is not pre-installed on the image so the setup step takes longer; I guess capacity is still limited/throttled so build time is not the fastest either...

@victoryforce
Copy link
Collaborator

build time is not the fastest either...

Let me rephrase this as “build time and developer wait time doubles”. So this CI job severely degrades the CI quality that is the most valuable for a developer, the speed of getting the result: whether or not there are failures when building new code. I have to wait an additional, say, 12-13 minutes to see the “green” or “red” feedback. This has a negative impact on development productivity.

I don’t see any possible advantage that would outweigh this disadvantage.

There is nothing in the darktable codebase that wouldn’t work on a processor with a different instruction set, so constantly checking this for every new code addition doesn’t make much sense.

Instead, we could build nightly, where the extremely slow new build doesn’t matter.

@kmilos
Copy link
Contributor Author

kmilos commented Apr 22, 2025

I tend to agree. There is no rush to merge this (was mainly curious how easy was it to use), we could also wait until the available runners are beefier.

I don’t see any possible advantage

This was one possibility to also cover a more recent Clang MSYS2 typically ships that was put on the back burner...

Instead, we could build nightly

Sure, just makes for a bit more contorted workflow file as NSIS is not available natively, so its installation and packaging steps should be skipped. I can work on this (as a separate PR or replacing this one) if everyone agrees?

@victoryforce
Copy link
Collaborator

I tend to agree. There is no rush to merge this (was mainly curious how easy was it to use), we could also wait until the available runners are beefier.

Ironically, now we have switched roles, once you convinced me not to burn watts with the words "The MSYS2 job is just too heavy and slow...". In the end, I agreed with you and sometimes I just run such a build locally. But then another job would only burn watts, but would not delay the completion of the CI run. A huge delay is definitely unacceptable.

I don’t see any possible advantage

This was one possibility to also cover a more recent Clang MSYS2 typically ships that was put on the back burner...

Nothing prevents me from building locally with the latest available Clang in MSYS to occasionally catch and fix build failures (as you can see in #18628).

Sure, just makes for a bit more contorted workflow file as NSIS is not available natively, so its installation and packaging steps should be skipped. I can work on this (as a separate PR or replacing this one) if everyone agrees?

If it's just to check if the build was successful, then it's just extra work that's not really needed. aarch64 is just an architecture with a different instruction set. The success of the compilation depends on the source code and the compiler, not on which target instruction set the code is compiled to.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants