Skip to content
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

Update EOL versions in release/6.0 #14621

Merged
merged 17 commits into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions azure-pipelines-weekly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ stages:
inputs:
useGlobalJson: true

- task: UseDotNet@2
displayName: Install .NET 3.1 runtime
inputs:
packageType: runtime
version: 3.1.x

- script: dotnet tool restore

- task: AzureCLI@2
Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates-official/job/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCore-Svc-Public
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCore1ESPool-Svc-Internal
image: 1es-mariner-2-pt
Expand Down
6 changes: 3 additions & 3 deletions eng/common/templates-official/job/source-index-stage1.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
parameters:
runAsPublic: false
sourceIndexPackageVersion: 1.0.1-20210614.1
sourceIndexPackageVersion: 1.0.1-20240320.1
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
preSteps: []
Expand Down Expand Up @@ -32,10 +32,10 @@ jobs:
- ${{ preStep }}

- task: UseDotNet@2
displayName: Use .NET Core sdk 3.1
displayName: Use .NET 8 SDK
inputs:
packageType: sdk
version: 3.1.x
version: 8.0.x
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason the 6.0 sdk wouldn't work here? ie, it simplifies things if all the places are using the same sdk where possible...

      - task: UseDotNet@2
        displayName: Install Correct .NET Version
        inputs:
          useGlobalJson: true

Copy link
Member Author

@richlander richlander Apr 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's because (I believe) the global tool has been updated to .NET 8. it was using .NET Core 3.1 so I upgraded the tool to latest, which seemed to make the most sense.

installationPath: $(Agent.TempDirectory)/dotnet
workingDirectory: $(Agent.TempDirectory)

Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates-official/jobs/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ parameters:
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
defaultManagedPlatform:
name: 'Managed'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-3e800f1-20190501005343'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7'
richlander marked this conversation as resolved.
Show resolved Hide resolved

# Defines the platforms on which to run build jobs. One job is created for each platform, and the
# object in this array is sent to the job template as 'platform'. If no platforms are specified,
Expand Down
4 changes: 2 additions & 2 deletions eng/common/templates/job/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ jobs:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCore-Svc-Public
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
demands: ImageOverride -equals Build.Ubuntu.2204.Amd64.Open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
demands: ImageOverride -equals Build.Ubuntu.2204.Amd64
${{ if ne(parameters.platform.pool, '') }}:
pool: ${{ parameters.platform.pool }}

Expand Down
6 changes: 3 additions & 3 deletions eng/common/templates/job/source-index-stage1.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
parameters:
runAsPublic: false
sourceIndexPackageVersion: 1.0.1-20210614.1
sourceIndexPackageVersion: 1.0.1-20240320.1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this changed?

Copy link
Member Author

@richlander richlander Apr 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologies, I thought I am the only who can merge this so I did

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you did anything wrong. Michael asked a question and I believe I provided a satisfactory answer. I would say that the source index package version is odd and approximately zero people are paying attention to that. It should be on a checklist for stuff we watch for.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the explanation Rich. FYI - I reverted these change in the main PR. 832b3fc before merging as they appeared unrelated and I didn't get a response.

Copy link
Member Author

@richlander richlander Apr 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. I did that (for main) so that the branches would match. It doesn't make much sense for the 6.0 branch to have a newer package than main.

We're missing a policy on when this package should be upgraded. The versioning scheme for the package doesn't help much. The forcing function of upgrading the package for this branch was more obvious.

@hoyosjs -- can you offer insight here.

sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
preSteps: []
Expand Down Expand Up @@ -30,10 +30,10 @@ jobs:
- ${{ preStep }}

- task: UseDotNet@2
displayName: Use .NET Core sdk 3.1
displayName: Use .NET 8 SDK
inputs:
packageType: sdk
version: 3.1.x
version: 8.0.x
installationPath: $(Agent.TempDirectory)/dotnet
workingDirectory: $(Agent.TempDirectory)

Expand Down
2 changes: 1 addition & 1 deletion eng/common/templates/jobs/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ parameters:
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
defaultManagedPlatform:
name: 'Managed'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-3e800f1-20190501005343'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'

# Defines the platforms on which to run build jobs. One job is created for each platform, and the
# object in this array is sent to the job template as 'platform'. If no platforms are specified,
Expand Down
4 changes: 2 additions & 2 deletions tests/UnitTests.proj
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
<ItemGroup Condition=" '$(HelixAccessToken)' != '' ">
<HelixTargetQueue Include="RedHat.7.Amd64"/>
<HelixTargetQueue Include="Windows.10.Amd64"/>
<HelixTargetQueue Include="(Debian.10.Amd64)ubuntu.1804.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-10-helix-amd64-20210304164434-56c6673"/>
<HelixTargetQueue Include="(Debian.11.Amd64)ubuntu.2204.amd64@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-helix-amd64"/>
</ItemGroup>

<PropertyGroup Condition=" '$(HelixAccessToken)' == '' ">
Expand All @@ -77,7 +77,7 @@
<ItemGroup Condition=" '$(HelixAccessToken)' == '' ">
<HelixTargetQueue Include="RedHat.7.Amd64.Open"/>
<HelixTargetQueue Include="Windows.10.Amd64.Open"/>
<HelixTargetQueue Include="(Debian.10.Amd64.Open)ubuntu.1804.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-10-helix-amd64-20210304164434-56c6673"/>
<HelixTargetQueue Include="(Debian.11.Amd64.Open)ubuntu.2204.amd64.open@mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-helix-amd64"/>
</ItemGroup>

<PropertyGroup Condition="!$(HelixTargetQueue.StartsWith('Windows'))">
Expand Down
2 changes: 1 addition & 1 deletion tests/XHarness.Android.SimulatorTests.proj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<XHarnessAndroidProject Include="$(MSBuildThisFileDirectory)XHarness/XHarness.TestApks.proj">
<AdditionalProperties>XHarnessTestX86=true;XHarnessTestX86_64=true</AdditionalProperties>
</XHarnessAndroidProject>
<HelixTargetQueue Include="ubuntu.1804.amd64.android.29.open"/>
<HelixTargetQueue Include="ubuntu.2204.amd64.android.29.open"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build failures you're seeing are connected to this change - these are Android emulator tests. I am honestly not sure what's the story with 22.04 and emulators but you could technically leave this at 1804 for now. These are just tests that have more coverage in dotnet/runtime anyway.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect the 32 bit Android emulators are not working well in 22.04. I believe we are not testing on those anymore in runtime anyway.

So alternatively, you can keep 22.04 but remove XHarnessTestX86=true above.

Also we should probably use .svc version of the queues.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<HelixTargetQueue Include="ubuntu.2204.amd64.android.29.open"/>
<HelixTargetQueue Include="ubuntu.1804.amd64.android.29.open"/>

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for that. It looks like the build is now succeeding but I made this proposed change, too. It aligns with others I made.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonathanpeppers @Redth -- Do you have insight on Android requirements with ,NET 6?

Copy link
Member

@premun premun Apr 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can give some context on why we have this in Arcade.

Arcade contains Helix SDK which help .NET repos run tests. A subset of Helix SDK is the XHarness SDK - this allows (mostly runtime) repos to point to a test project and the XHarness SDK builds an apk/app bundle, sends it to Helix, runs the tests on devices, collects results, increases reliability, cleans up after, etc. Basically XHarness SDK is a layer on top of our Apple/Android infrastructure so that as a whole, we provide quite reliable "testing on phones-as-a-service".

The tests that were failing here give us coverage for this functionality as runtime depends on this heavily.
The set of target platforms in these tests probably diverged from what we run in the end repos and is not in any way binding but it covers the basic matrix of simulator/device/OS.

MAUI repos do not use Helix. They use the XHarness tool directly so they don't have this layer.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I propose we just switch back to 1804 for .NET 6. It isn't worth the trouble. We should make sure main and net8 are good.

Copy link
Member Author

@richlander richlander Apr 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this is just some inherent flakiness of the 6.0 world where the real world phone infra just swept from under the 6.0 branches as literally all of the parts there got updated. So I think re-running the legs a couple of times should get you a green check eventually. I realize this is not ideal but there's just not enough funding to keep the 6.0 world up to date with the everchanging MacOS and Linux versions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can also merge over this, I don't think it's a big deal honestly.

</ItemGroup>

<Target Name="Pack"/>
Expand Down
Loading