Skip to end of banner
Go to start of banner

Continuous integration and delivery for WoA

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Current »

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

https://github.com/python/cpython

LTS blocked by cloud CI

  • Cross-compilation

2

Numpy

https://github.com/numpy/numpy

LTS blocked by cloud CI

3

CFFI

https://foss.heptapod.net/pypy/cffi

LTS blocked by cloud CI

4

lxml

https://github.com/lxml/lxml

LTS blocked by cloud CI

5

Apache Arrow

https://github.com/apache/arrow/

LTS blocked by cloud CI

  • Cross-compilation

6

greenlet

https://github.com/python-greenlet/greenlet/

LTS blocked by cloud CI

7

Pywin32

https://github.com/mhammond/pywin32

LTS blocked by cloud CI

8

Maturin

https://github.com/PyO3/maturin/

  • Cross-compilation

9

Pywinpty

https://github.com/spyder-ide/pywinpty

LTS blocked by cloud CI

10

cibuildwheel

https://github.com/pypa/cibuildwheel/

LTS blocked by cloud CI

11

Pillow

https://github.com/python-pillow/Pillow

12

OpenBLAS

https://github.com/xianyi/OpenBLAS

LTS blocked by cloud CI

13

FreeType

https://github.com/freetype/freetype

14

ZeroMQ

https://github.com/zeromq/libzmq

LTS blocked by cloud CI

  • Cross-compilation

15

Pyzmq

https://github.com/zeromq/pyzmq

LTS blocked by cloud CI

16

OpenSSL

https://github.com/openssl/openssl/

LTS blocked by cloud CI

  • Cross-compilation

17

Cryptography

https://github.com/pyca/cryptography/

LTS blocked by cloud CI

18

Pyopenssl

https://github.com/pyca/pyopenssl/

LTS blocked by cloud CI

19

Libsodium

https://github.com/jedisct1/libsodium

LTS blocked by cloud CI

  • Cross-compilation

20

pycryptodome

https://github.com/Legrandin/pycryptodome

PR adoption blocked by cloud CI

  • No labels