Codeberg-CI/feedback
490
71

Windows support #294

Open
opened 2025年12月27日 16:32:57 +01:00 by glyn · 7 comments
Member
Copy link

I was hoping to use Codeberg CI to test my code on Windows, Linux, and macOS. However, the docs describe how CI jobs run in containers, so I presume that means Linux containers.

Testing on Windows is essential for my repository as it depends heavily on a library which is implemented quite differently on each OS.

So would it be possible to add Windows CI support?

I was hoping to use Codeberg CI to test my code on Windows, Linux, and macOS. However, the docs describe how CI jobs run in containers, so I presume that means Linux containers. Testing on Windows is essential for my repository as it depends heavily on a library which is implemented quite differently on each OS. So would it be possible to add Windows CI support?

Even if this was possible, Codeberg would need to fork over cash to Microsoft for their per-core Windows Server licensing (which GitHub can do easily because they are owned by Microsoft)

Licenses are crazy expensive, not to mention that Microsoft also counts how many containers you make for the license. (if you go over the 2 containers that the standard license gives you, you need to relicense the cores again.)

See: https://support.hpe.com/docs/display/public/hpe-ms-licensing-cal/index.html

Even if this was possible, Codeberg would need to fork over cash to Microsoft for their per-core Windows Server licensing (which GitHub can do easily because they are owned by Microsoft) Licenses are crazy expensive, not to mention that Microsoft also counts how many containers you make for the license. (if you go over the 2 containers that the standard license gives you, you need to relicense the cores again.) See: https://support.hpe.com/docs/display/public/hpe-ms-licensing-cal/index.html
Author
Member
Copy link

@techmetx11 wrote in #294 (comment):

Even if this was possible, Codeberg would need to fork over cash to Microsoft for their per-core Windows Server licensing (which GitHub can do easily because they are owned by Microsoft)

That looks like monopolistic behaviour on Microsoft's part, but IANAL...

@techmetx11 wrote in https://codeberg.org/Codeberg-CI/feedback/issues/294#issuecomment-9286934: > Even if this was possible, Codeberg would need to fork over cash to Microsoft for their per-core Windows Server licensing (which GitHub can do easily because they are owned by Microsoft) > That looks like monopolistic behaviour on Microsoft's part, but IANAL...

@glyn wrote in #294 (comment):

@techmetx11 wrote in #294 (comment):

Even if this was possible, Codeberg would need to fork over cash to Microsoft for their per-core Windows Server licensing (which GitHub can do easily because they are owned by Microsoft)

That looks like monopolistic behaviour on Microsoft's part, but IANAL...

Well, it's either waste a ton of money on Windows Server licenses, or let MS have a word with you for using a desktop edition of Windows for server purposes (which is something forbidden in Windows' EULA) or even worse, a pirated copy of Windows Server

Again, if you self-hosted a Windows runner, It'll be much cheaper for everyone and I doubt MS will personally come after you, unlike if Codeberg did it

@glyn wrote in https://codeberg.org/Codeberg-CI/feedback/issues/294#issuecomment-9293792: > @techmetx11 wrote in #294 (comment): > > > Even if this was possible, Codeberg would need to fork over cash to Microsoft for their per-core Windows Server licensing (which GitHub can do easily because they are owned by Microsoft) > > That looks like monopolistic behaviour on Microsoft's part, but IANAL... Well, it's either waste a ton of money on Windows Server licenses, or let MS have a word with you for using a desktop edition of Windows for server purposes (which is something forbidden in Windows' EULA) or even worse, a pirated copy of Windows Server Again, if you self-hosted a Windows runner, It'll be much cheaper for everyone and I doubt MS will personally come after you, unlike if Codeberg did it

For reference, I am talking about using Microsoft's official Windows containers, not any other legally-dubious containers out there on the Internet

For reference, I am talking about using [Microsoft's official Windows containers](https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/container-base-images), not any other legally-dubious containers out there on the Internet
Owner
Copy link

Given Codeberg's philosophy, there will never runners for proprietary operating systems.

Given Codeberg's philosophy, there will never runners for proprietary operating systems.

Fun fact: If you have a computer laying around that happens to be running Windows Server 2016+ or Windows 10/11 Professional/Enterprise, you can run Forgejo Runner (it's pretty simple) on it which will give you access to Microsoft's Windows image containers. Windows containers can only be ran on Windows hosts

Fun fact: If you have a computer laying around that happens to be running Windows Server 2016+ or Windows 10/11 Professional/Enterprise, you can run [Forgejo Runner](https://github.com/Crown0815/Forgejo-runner-windows-builder) (it's pretty simple) on it which will give you access to Microsoft's Windows image containers. Windows containers can only be ran on Windows hosts
Owner
Copy link

self host a woodpecker agent is as easy as forgejo runner ... they both work kind a similar in terms of how to administrate.

https://woodpecker-ci.org/docs/administration/configuration/agent#backend

either run windows stuff in a local shell via the local backend or use windows containers both should work.
the only thing if you go the windows container route is that you have to define the clone step yourself as we do not jet have default upstream windows images for the git clone plugin (https://github.com/woodpecker-ci/plugin-git/issues/187)

go to your user/org settings agent tab ... klick add agent and give it a name. once done you will get a token:

image

now setup your agent:

WOODPECKER_AGENT_SECRET=YDBHSZ22ZPJ2FAFA47XJKO5INRBEOE7GA6IXWGJN3YKW3INB2D2A====
WOODPECKER_BACKEND=docker
WOODPECKER_SERVER=grpc.ci.codeberg.org:443
WOODPECKER_GRPC_SECURE=true
WOODPECKER_HEALTHCHECK=false
self host a woodpecker agent is as easy as forgejo runner ... they both work kind a similar in terms of how to administrate. https://woodpecker-ci.org/docs/administration/configuration/agent#backend either run windows stuff in a local shell via the local backend or use windows containers both should work. the only thing if you go the windows container route is that you have to define the clone step yourself as we do not _jet_ have default upstream windows images for the git clone plugin (https://github.com/woodpecker-ci/plugin-git/issues/187) go to your user/org settings agent tab ... klick `add agent` and give it a name. once done you will get a token: ![image](/attachments/1c61f04a-bedd-42f7-9eb0-071ce045c594) now setup your agent: ```py WOODPECKER_AGENT_SECRET=YDBHSZ22ZPJ2FAFA47XJKO5INRBEOE7GA6IXWGJN3YKW3INB2D2A==== WOODPECKER_BACKEND=docker WOODPECKER_SERVER=grpc.ci.codeberg.org:443 WOODPECKER_GRPC_SECURE=true WOODPECKER_HEALTHCHECK=false ```
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Codeberg-CI/feedback#294
Reference in a new issue
Codeberg-CI/feedback
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?