-
Notifications
You must be signed in to change notification settings - Fork 5k
Add Azure Linux to regular CI #115415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Azure Linux to regular CI #115415
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds Azure Linux support to the regular CI pipelines by updating the job configuration in the libraries pipeline.
- Added Azure Linux configuration to the conditional extra platforms build block.
- Ensured consistency with the upgrade requirements per the referenced issue.
/azp run runtime-libraries-coreclr outerloop-linux |
Azure Pipelines successfully started running 1 pipeline(s). |
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CentOS Stream 10 or Debian 13 are important to keep on in inner loop because those two distros have OpenSSL 3.5 (latest and greatest). Deb-13 was taken out, but since CentOS Stream 10 is still there, and Ubuntu is still there, it's fine by me.
@jeffhandley -- can you validate that the XSLT failure is OK? Sounds like it is not crypto related but it could be something else. Have we seen that failure elsewhere? |
The test is complaining about unexpected data and time formatting on Azure Linux: e.g. This failure needs to be addressed before this PR gets merged. We have not seen this failure anywhere else. |
I can consistently reproduce it on AZL 3. It appears fixed by #114200 which is not yet merged. |
This appears to be the relevant code: https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.Xml/tests/Xslt/TestFiles/TestData/XsltApiV2/bug93189.xsl We need to validate that this works correctly on Azure Linux 3. |
I disabled the failing test case to unblock the PR. The issue is the date day is formatted with |
Do you see it as a temporary workaround or as an actual fix? I thought that we want the libraries tests to be robust against environment locale settings. |
Agree. I want first to validate my understanding, but the test needs to change too to work reliably regardless of the machine configuration. |
So dotnet/dotnet-buildtools-prereqs-docker#1427 should be reverted, and this test disabled and eventually fixed instead. |
Looks the test not failing on other images which indicate the default locale was set there. So, I don't think reverting dotnet/dotnet-buildtools-prereqs-docker#1427 is needed. The test needs to change anyway though. |
Relevant ENVs, for reference: Set environment variables
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8 Here's how the images are configured (that recent PR has not yet come into effect): rich@vancouver:~$ docker run --rm mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-helix-amd64 locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
rich@vancouver:~$ docker run --rm mcr.microsoft.com/dotnet-buildtools/prereqs:debian-13-helix-amd64 locale
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
rich@vancouver:~$ docker run --rm mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-25.04-helix-amd64 locale
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
$ docker run --rm mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream-10-helix-amd64 locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL= Upon seeing this (which I should have done initially), It doesn't seem like the PR we made is correct. The only interesting difference is that |
I disagree. We want our default test environment to be as close as possible to the default environment used by customers. We know that Azure Linux is non-standard in number of ways. We want to cover as much of these differences as possible in our tests. It is the reason why we are beefing up the Azure Linux testing. |
Not really, setting the environment variables I sent is enough and not necessary setting all the rest.
I don't mind either way. The failing test is checking against hardcoded precalculated values depending on specific settings. If we think testing with default image settings is beneficiary for whole tests, that will be fine. |
Slightly wrong data. The images got published just as I pulled them. Before and after PR1427: rich@vancouver:~$ docker run --rm mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:5ded7a1ff99093aa48ecea8649aa75aadb007c98105d664d79878fa0a7020e10 locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
rich@vancouver:~$ docker run --rm mcr.microsoft.com/dotnet-buildtools/prereqs@sha256:a9b9de612f54c6e34ad273ab85aee01ff0cdb456bd6c7a4d3475c26b2068f4ac locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8 This aligns with the initial investigation by @tarekgh that language info is not set. The philosophy that we take the images as-is sounds good. We can make a tracking issue for AL4 if we think this should be changed. I'll re-kickoff CI when the new image gets published to ensure we get a clean run. |
Sounds good to me. We need two issues one for the image and one for the test :-) I'll go ahead and revert the disabling test case too here. |
Sorry ... what are the issues? I thought that keeping the test disabled would be the correct action. We cannot merge this PR otherwise. |
ok:
|
More context. Looks like AL3 closely matches Fedora, which we also support (obviously). rich@vancouver:~$ docker run --rm mcr.microsoft.com/azurelinux/base/core:3.0 locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
rich@vancouver:~$ docker run --rm fedora locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL= This locks in the idea that we should be testing the distros unmodified. |
/azp run runtime-libraries-coreclr outerloop-linux |
Azure Pipelines successfully started running 1 pipeline(s). |
Respin per rebuild: dotnet/versions@911f03a |
Looks like the tests are clean.
This is a big change with significant implications. I'll wait for someone else to "OK" merging (or just merge). I'll port this change to release branches next. |
@@ -3165,7 +3165,7 @@ public void ValidCases_ExternalURI(object param0, object param1, object param2, | |||
//[Variation("No Import/Include, NullResolver", Pri = 0, Params = new object[] { "Bug382198.xsl", "fruits.xml", "bug382198.txt", "NullResolver", true })] | |||
[InlineData("Bug382198.xsl", "fruits.xml", "bug382198.txt", "NullResolver", true, "IXPathNavigable")] | |||
[InlineData("Bug382198.xsl", "fruits.xml", "bug382198.txt", "NullResolver", true, "XmlReader")] | |||
[InlineData("bug93189.xsl", "bug93189.xml", "bug93189.xml", "NullResolver", true, "XmlReader")] | |||
// [InlineData("bug93189.xsl", "bug93189.xml", "bug93189.xml", "NullResolver", true, "XmlReader")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should have a link to an issue that tracks fixing the test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have created #115455
src/libraries/System.Private.Xml/tests/Xslt/XslCompiledTransformApi/XslCompiledTransform.cs
Show resolved
Hide resolved
…rmApi/XslCompiledTransform.cs
src/libraries/System.Private.Xml/tests/Xslt/XslCompiledTransformApi/XslCompiledTransform.cs
Outdated
Show resolved
Hide resolved
…rmApi/XslCompiledTransform.cs
Plan:
High-level summary:
Notes:
Relevant test legs:
@jkotas