actions / runner-images

GitHub Actions runner images
MIT License
10.11k stars 3.04k forks source link

Add ARM64 Windows environment #768

Closed joaomoreno closed 4 years ago

joaomoreno commented 4 years ago

Feature: Add Windows ARM64 as an environment

Hi there, are there any plans to support a hosted ARM64 environment? We're seeing quite some enthusiasm over here: https://github.com/microsoft/vscode/issues/33620

alepauly commented 4 years ago

Hi @joaomoreno, unfortunately not at this time. Adding extra environments currently affects overall capacity and how we can serve the existing environments. If that changes in the future we'll definitely consider it. Have you looked into setting up your own self-hosted runner?

joaomoreno commented 4 years ago

@alepauly Windows ARM64 doesn't seem to be a supported platform for self-hosted runners, or am I missing something?

alepauly commented 4 years ago

@alepauly Windows ARM64 doesn't seem to be a supported platform for self-hosted runners, or am I missing something?

Hi @joaomoreno, you aren't missing anything, my bad. I wasn't looking at the Windows part of your request and was thinking the runner could run on ARM64 but that's not true on Windows. Until DotNet Core doesn't run there, we probably won't be able to support it.

joaomoreno commented 4 years ago

Relevant: https://github.com/dotnet/winforms/issues/2053#issuecomment-540269844

dennisameling commented 3 years ago

Just for the record, I just created a PR to add support for Windows ARM64 to GitHub Actions runners (self-hosted): https://github.com/actions/runner/pull/785

jeremyd2019 commented 2 years ago

Sorry if posting to an old closed/wontfix issue is not appreciated vs opening a new one. I was notified about this interesting Azure development: https://azure.microsoft.com/en-us/blog/now-in-preview-azure-virtual-machines-with-ampere-altra-armbased-processors/

The Dpsv5 and Epsv5 Azure VM-series feature the Ampere Altra Arm-based processor operating at up to 3.0GHz. The new VMs provide up to 64 vCPUs and include VM sizes with 2GiB, 4GiB, and 8GiB per vCPU memory configurations, up to 40 Gbps networking, and optional high-performance local SSD storage. The VMs currently in preview support Canonical Ubuntu Linux, CentOS, and Windows 11 Professional and Enterprise Edition on Arm.

If the reason GitHub hosted Windows on ARM VMs could not be offered was because Azure didn't have such a thing, it sounds like that's changing! :tada:

panekj commented 2 years ago

@jeremyd2019 it won't happen because Azure will not provide Windows Server on arm64, they only provide client OS which is Windows 11

triplef commented 11 months ago

@alepauly @erik-bershel would it be possible to get this ask re-evaluated please? 🙏

Windows on ARM has been gaining a lot of traction since the original post here in 2020, and much work has been put into tooling support for WoA since then. A lot of projects on GH are working on or already have WoA support and would like to build/test it with Actions (as shown by the list of linked tickets above).

I’m not sure if Actions runs on Azure but if so their WoA support is also generally available since last year: https://azure.microsoft.com/en-us/blog/azure-virtual-machines-with-ampere-altra-arm-based-processors-generally-available/

erik-bershel commented 11 months ago

Hi @triplef! Unfortunately, there are no such plans yet. I can say with confidence that we will definitely announce such changes.

Xazax-hun commented 10 months ago

With more parties entering the Arm64 PC CPU market (https://www.tomshardware.com/news/amd-and-nvidia-to-develop-arm-cpus-for-client-pcs-report), and this issue is blocking many projects from shipping Arm64 binaries on Windows, I'd expect the pressure to ship this feature to increase over time.

EwoutH commented 7 months ago

Could we reopen this issue? Even if not planned currently, it would be useful for users to voice their concerns, ideas and developments.

EwoutH commented 7 months ago

It seems that as Microsoft wants to compete with macOS and Chrome OS and it pushing Arm support quite heavily on Windows, there is a huge benefit in having CI pipelines running easily.

Arm–based processors have been available in Azure since September 2022 and there is extensive documentation about it. Both energy efficiency and performance per dollar is generally cheaper using Arm-servers, especially in applications that are as independent and thus scale as well as CI.

I don't understand what the hesitation is of adding Arm based Windows hosted runners - or at least why it can't be further discussed.

panekj commented 6 months ago

or at least why it can't be further discussed.

You can discuss it, the issue is not locked.

I don't understand what the hesitation is of adding Arm based Windows hosted runners

There is no hesitation, Azure (which is used as underlying platform for GitHub Actions) doesn't provide Windows Server on ARM64 (publicly) (yet).

johnnyshields commented 5 months ago

Hi, so the most recent Microsoft keynote event made a big splash with the new Qualcomm Snapdragon Elite ARM processors.

At the moment, tons of language support (.NET, Python, Ruby, etc.) is blocked for Windows ARM because there is no Azure Windows ARM instance which we can run CI.

Microsoft owns Github. Can someone get the left-hand to talk to the right-hand here (even if Azure Windows ARM is just made internally-only available for Github Actions CI?)

EwoutH commented 5 months ago

Those Azure Cobalt 100 processors seems like excellent SoCs to host some CI runners on!

dessant commented 5 months ago

https://techcommunity.microsoft.com/t5/azure-compute-blog/announcing-the-preview-of-new-azure-vms-based-on-the-azure/ba-p/4146353

GitHub Actions is now available for Windows and Linux on Arm in 2 flavors – self-hosted runners that can be hosted on an Arm VM or Arm device, and GitHub hosted runners that is available in private beta with GA expected later this summer.

johnnyshields commented 5 months ago

@alepauly how may projects get access to Private Beta for Windows on ARM? Would be great if can be enabled for all projects linking to this issue.

nulano commented 5 months ago

@alepauly how may projects get access to Private Beta for Windows on ARM? Would be great if can be enabled for all projects linking to this issue.

It seems to be explained here: https://resources.github.com/devops/accelerate-your-cicd-with-arm-and-gpu-runners-in-github-actions/

johnnyshields commented 4 months ago

@nulano strange that link is now broken. It also looks like it was for Linux ARM not Windows.

Also saw this: https://github.blog/changelog/2023-10-30-accelerate-your-ci-cd-with-arm-based-hosted-runners-in-github-actions/

nulano commented 4 months ago

@nulano strange that link is now broken. It also looks like it was for Linux ARM not Windows.

Also saw this: https://github.blog/changelog/2023-10-30-accelerate-your-ci-cd-with-arm-based-hosted-runners-in-github-actions/

Yep, that's where I found the link. IIRC it was for both, but I'm not sure.

jeremyd2019 commented 4 months ago

From https://github.com/msys2/msys2-docker/issues/2#issuecomment-2157568668:

https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/

GitHub is ecstatic to unveil ArmⓇ-based Linux and Windows runners for GitHub Actions are now in Public Beta. […] These runners are available to our customers on our GitHub Team and Enterprise Cloud plans. We expect to begin offering Arm runners for open source projects by the end of the year.

🎉 🎆 🙌 best news I've heard in a while

kevcenteno commented 4 months ago

@lkfortuna Is there anyway we could accelerate availability for (popular) open source projects or get a stronger idea of when the windows+arm64 images will be generally available? I ask because this is yet another barrier to buying into the Windows on Arm ecosystem as a developer. Having to set up multiple toolchains to compile all the open source tools that developers use is a headache for most (lazy-like-me) developers. Sure, windows emulation is fine for now I suppose, but - again - I'm lazy and probably won't re-install my dev tools until I absolutely have to.

Tagging @ivcarreras @jamshedd for visibility and advocacy.

johnnyshields commented 3 months ago

Github team may we please get a comment on this (and also re-open this issue?)

nbolton commented 3 months ago

In case anyone is wondering how to get Git working on the Windows ARM64 runners...

      - name: Install Git
        run: |
          Set-ExecutionPolicy Bypass -Scope Process -Force
          [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
          iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
          choco install -y --no-progress git
          echo "C:\Program Files\Git\cmd" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
spyoungtech commented 2 months ago

For those stumbling upon this wanting to quickly understand the current situation: GitHub-hosted ARM runners are here, in beta, but only for organizations and enterprises with a compatible subscription plan. You have to opt in to use the ARM runner, just like with managing any other large runner. Many marketplace actions are, understandably, not compatible with this runner configuration, YMMV.

Short version: Under your organization settings in Actions -> Runners you can create a new github-hosted runner and you can now specify "Windows ARM64" or "Linux ARM64" for the platform. The only image available for Windows is the Windows 11 (Preview) partner image. For Linux, Ubuntu 22 and Ubuntu 24 partner images are available.

image

A few configurations are available ![image](https://github.com/user-attachments/assets/6e7c2c59-3fa6-4dda-b4d0-e867c24037da)

Be aware there are charges involved (pricing) for this that are not covered by your included Actions minutes, even for public projects.

Hopefully in the future we see ARM64 runners become available to individual users and open source projects under included CI minutes. Until then, self-hosting continues to be the workaround for those who may not be able to reasonably leverage the above.

johnnyshields commented 2 months ago

@spyoungtech Thank you very much for this update. It strikes me as a bit backwards to rollout Windows ARM64 only for enterprise, because there isn't a ton an enterprise do with Windows ARM64 until the core languages and libraries (many which are open source on Github) can support it in their respective CIs. So it would be very nice if Github could flip it on for free at least for the public repos mentioned in this thread.

RiadhKHEDHIRI commented 2 months ago

I second @johnnyshields tweet-1823801071430721682

lilith commented 2 months ago

As an OSS developer, even though I own a snapdragon laptop, I can't afford to support windows on arm natively without github runner support. CI is the only way we can maintain so much.

johnnyshields commented 1 month ago

Update: ARM64 Linux and Windows runners are now in Paid GA: https://github.blog/changelog/2024-09-03-github-actions-arm64-linux-and-windows-runners-are-now-generally-available/

This still prevents the vast majority of OSS projects from using them--most can't afford to pay 😢

lilith commented 1 month ago

They still don't even come with pwsh, bash, git, or msvc build tools installed. No pre-installed software at all.

Takes 30+ min to install the compilers and prerequisites, so not usable anyway...