Skip to content

Support a mix of public and internal .NET builds #4111

@mthalman

Description

@mthalman

The staged builds for pre-release versions of .NET can be a mix of both public and internal builds amongst the .NET components. For example, the SDK and ASP.NET Core builds may be available only in the internal blob container while the associated runtime build may be available in the public container. This is problematic because the current infrastructure for being able to target internal builds of .NET requires that everything be in the internal blob container.

This is made apparent when looking at these variables:

"base-url|3.1|main": "$(base-url|public|maintenance-legacy|main)",
"base-url|3.1|nightly": "$(base-url|public|maintenance-legacy|nightly)",
"base-url|6.0|main": "$(base-url|public|maintenance|main)",
"base-url|6.0|nightly": "$(base-url|public|maintenance|nightly)",
"base-url|7.0|main": "$(base-url|public|main)",
"base-url|7.0|nightly": "$(base-url|public|nightly)",

You can see that, for a given .NET version, it's all expected to be either public or internal. There's no differentiation of repo for these variables. All the Dockerfiles (SDK, aspnet, runtime) use the same variable.

In order to support this, each repo needs to have its own variable which indicates its public/internal state. The Dockerfiles for each of those repos would then reference its respective variable.

That's the easy part. The harder part would be the changes necessary to the update-dependencies tool so that it can appropriate set these variables. It would need to interrogate the availability of the build between the different blob containers to determine which one it was in.

The other option would be to always have builds which are copied to the public blob container also get copied to the internal blob container. But storage costs would likely be a concern with that approach, I'm assuming. Is that an option, @mmitche?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions