|
| 1 | +# Guidelines for Platforms Tested in CI |
| 2 | + |
| 3 | +This document contains the guidelines for which platforms (OS and architectures) to test in |
| 4 | +the source build CI. |
| 5 | + |
| 6 | +## Distro Families |
| 7 | + |
| 8 | +1. Prefer testing base distros of families over derivatives. |
| 9 | +1. Prioritize testing distros that source build .NET. |
| 10 | +1. Use CentOS Stream instead of Red Hat because it is the free alternative. |
| 11 | +1. Include a permutation of distros for the supported C standard library implementations |
| 12 | +(e.g. glibc and musl). |
| 13 | +1. Only test [distros that are officially supported by .NET](https://github.com/dotnet/core/blob/main/os-lifecycle-policy.md#net-supported-os-policy). |
| 14 | +Community supported distros will not be covered. |
| 15 | + |
| 16 | +**Note:** There will be conflicts within these guidelines. When they occur, it is an indication |
| 17 | +that multiple legs will be needed. For example, Ubuntu is based on Debian. However, .NET is included |
| 18 | +in Ubuntu's repositories by default but not Debian's (at the time of writing). As such, it is best |
| 19 | +to include legs for both Ubuntu and Debian. |
| 20 | + |
| 21 | +## Distro Versions |
| 22 | + |
| 23 | +When selecting which distro versions to test the .NET version in development, it is important to take into account which distro versions will be in support at the time of the .NET release. Don't worry about testing .NET on distro versions that will be or nearing EOL on the .NET release day. |
| 24 | + |
| 25 | +1. Latest LTS version. If the distro doesn't have an LTS notion, then test latest. |
| 26 | +1. Oldest version that will be in-support for the lifetime of the .NET release. |
| 27 | + |
| 28 | +## Architectures |
| 29 | + |
| 30 | +1. Amd64 |
| 31 | +1. Arm64 |
| 32 | + |
| 33 | +## Permutations |
| 34 | + |
| 35 | +It is not the intent to test every permutation of distro family, distro version, and architecture. |
| 36 | +Rather, smart decisions should be made to utilize resources. For example, test the oldest LTS version |
| 37 | +of Debian on amd64 and the latest LTS version of Ubuntu on arm64. |
| 38 | + |
| 39 | +1. CentOS Stream |
| 40 | + 1. Newest in support version |
| 41 | + 1. Oldest in support version (for the lifetime of .NET) |
| 42 | +1. Fedora - Newest in support version |
| 43 | +1. Debian - Oldest LTS version (for the lifetime of .NET) |
| 44 | +1. Ubuntu - Newest LTS version (arm64) |
| 45 | +1. Alpine - Newest in support version |
0 commit comments