Continuous integration and delivery for WoA
This page captures the requirements and challenges for deploying CI/CD for WoA open-source projects.
CI/CD requirement for Open source projects
Most of the open-source projects prefer to use publically available cloud instances for deploying CI/CD for their projects. There are no public cloud instances available for WoA yet. The only option at the moment is to use self-hosted runners with major CI/CD services but since they are hard to maintain open-source projects only accept them if there is a strong demand for the platform.
Cloud Services
Most open-source projects use one of the following for windows testing
Github Actions
Azure Pipeline
Appveyor
Travis
WoA instances need to be available with one of the above cloud services for deployment.
Virtual Environment Requirement
At least following toolchain and runtime are required for WoA instances in the cloud
Windows 11 OS
Visual Studio 2019
ARM64/x64/x86 C++ toolchain
Visual Studio 2017 with ARM64 C++ toolchain
LLVM (WoA)
Python
Rust
Powershell
Cmd
NuGet
CMake
Git
Ninja
Mercurial
Perl
Cloud Availability and Instances
There are many open-source projects which would require WoA instances for deploying CI/CD. Some of the main ones required for enabling the python ecosystem are given below but this list is growing very fast. Most of the repository has good CI traffic and we expect a huge number of instances are required for supporting them.
Project | Reference | Impact | Alternatives | |
---|---|---|---|---|
1 | CPython | LTS blocked by cloud CI |
| |
2 | Numpy | GitHub - numpy/numpy: The fundamental package for scientific computing with Python. | LTS blocked by cloud CI | ย |
3 | CFFI | LTS blocked by cloud CI | ย | |
4 | lxml | LTS blocked by cloud CI | ย | |
5 | Apache Arrow | LTS blocked by cloud CI |
| |
6 | greenlet | GitHub - python-greenlet/greenlet: Lightweight in-process concurrent programming | LTS blocked by cloud CI | ย |
7 | Pywin32 | GitHub - mhammond/pywin32: Python for Windows (pywin32) Extensions | LTS blocked by cloud CI | ย |
8 | Maturin | ย |
| |
9 | Pywinpty | GitHub - andfoy/pywinpty: Pseudoterminals for Windows in Python | LTS blocked by cloud CI | ย |
10 | cibuildwheel | LTS blocked by cloud CI | ย | |
11 | Pillow | GitHub - python-pillow/Pillow: Python Imaging Library (Fork) | ย | ย |
12 | OpenBLAS | LTS blocked by cloud CI | ย | |
13 | FreeType | GitHub - freetype/freetype: Official mirror of https://gitlab.freedesktop.org/freetype/freetype | ย | ย |
14 | ZeroMQ | GitHub - zeromq/libzmq: ZeroMQ core engine in C++, implements ZMTP/3.1 | LTS blocked by cloud CI |
|
15 | Pyzmq | LTS blocked by cloud CI | ย | |
16 | OpenSSL | LTS blocked by cloud CI |
| |
17 | Cryptography | LTS blocked by cloud CI | ย | |
18 | Pyopenssl | LTS blocked by cloud CI | ย | |
19 | Libsodium | LTS blocked by cloud CI |
| |
20 | pycryptodome | PR adoption blocked by cloud CI | ย | |
21 | Goes | ย |
| |
22 | Shapely | ย | ย |
ย
ย