Skip to content

ACR SDK dist: Minor fix and add more tests#2899

Merged
sarsharma merged 89 commits intomainfrom
feature/oryx-sdk-acr-distribution
Apr 9, 2026
Merged

ACR SDK dist: Minor fix and add more tests#2899
sarsharma merged 89 commits intomainfrom
feature/oryx-sdk-acr-distribution

Conversation

@sarsharma
Copy link
Copy Markdown
Member

Improve exception handling for dotnet and add few more tests

Sarath chandra Bussa and others added 30 commits April 1, 2026 13:14
Add two separate ACR SDK providers behind ORYX_ENABLE_ACR_SDK_PROVIDER:

1. ExternalAcrSdkProvider - communicates with LWASv2 via Unix socket
   to pull SDK images from WAWS Images ACR
2. AcrSdkProvider (direct) - downloads SDKs from Oryx ACR
   (oryxsdks.azurecr.io) using OCI Distribution API

New files:
- IExternalAcrSdkProvider.cs / ExternalAcrSdkProvider.cs
- OciRegistryClient.cs - HTTP client for OCI Distribution API
- AcrVersionProviderBase.cs - base class for ACR version discovery
- Per-platform ACR version providers (Node, Python, PHP, DotNetCore)
- publishSdkImageToAcr.sh / publishSdkToAcr.yml - ACR publish pipeline

Modified files:
- Platform install decisions (NodePlatform, PythonPlatform, PhpPlatform,
  DotNetCorePlatform) with ACR branch before existing DynamicInstall
- Version provider orchestrators with ACR provider chain
- PlatformInstallerBase with GetAcrInstallerScriptSnippet()
- Go startup script generator with ACR download path
- DI registrations for all new providers
- Constants, options, settings keys for ACR configuration

All changes are additive and behind feature flags.
Existing blob storage code paths are completely untouched.
…esolution

Remove ACR repository/tag construction from ExternalAcrSdkProvider.
Now sends only platform, version, and debianFlavor to LWASv2.
LWASv2 resolves the SDK companion image from LinuxAssets and
handles pinning, containerd pull, mount, and extraction.
… OneBranch pipeline)

Remove publishSdkImageToAcr.sh and publishSdkToAcr.yml since SDK images
are now built and pushed using onebranch.pipeline.imagebuildinfo in
the AAPT-Antares-Oryx pipeline, not via custom scripts.
Use the same ACR that AAPT-Antares-Oryx publishes SDK images to.
Updated both C# constant and Go constant.
- SA1204: Move static GetFirstLayerDigest before instance members (OciRegistryClient.cs)
- SA1124: Remove #region/#endregion around OCI JSON models (OciRegistryClient.cs)
- SA1202: Move protected GetAcrInstallerScriptSnippet before private methods (PlatformInstallerBase.cs)
- SA1116/SA1117: Place multi-line parameters each on own line (ExternalAcrSdkProvider.cs)
- SA1515: Add blank line before single-line comment (DotNetCoreAcrVersionProvider.cs)
- SA1204: Move static GetFirstLayerDigest before instance members (OciRegistryClient.cs)
- SA1124: Remove #region/#endregion around OCI JSON models (OciRegistryClient.cs)
- SA1202: Move protected GetAcrInstallerScriptSnippet before private methods (PlatformInstallerBase.cs)
- SA1116/SA1117: Place multi-line parameters each on own line (ExternalAcrSdkProvider.cs)
- SA1515: Add blank line before single-line comment (DotNetCoreAcrVersionProvider.cs)
* fix: Resolve StyleCop analyzer errors in ACR SDK provider files

- SA1204: Move static GetFirstLayerDigest before instance members (OciRegistryClient.cs)
- SA1124: Remove #region/#endregion around OCI JSON models (OciRegistryClient.cs)
- SA1202: Move protected GetAcrInstallerScriptSnippet before private methods (PlatformInstallerBase.cs)
- SA1116/SA1117: Place multi-line parameters each on own line (ExternalAcrSdkProvider.cs)
- SA1515: Add blank line before single-line comment (DotNetCoreAcrVersionProvider.cs)

* fix sdk providers logic

* refactor pythonPlatform

* refctor for dotnet,php and node

---------

Co-authored-by: Sarath chandra Bussa <sbussa@microsoft.com>
sarsharma and others added 23 commits April 6, 2026 00:06
* add fallback for no versions returned

* improve image caching logic

* handle mcr repo
* nit fixes in pr review

* nit fixes 2.0

* refactor
* Fix composer logic

* nit
Add DOTNET_SDK_80, DOTNET_SDK_90, DOTNET_SDK_100 variables to pair with
existing runtime version variables. Add composerVersion for PHP Composer.
These are consumed by the Official and Buddy pipelines for SDK ACR publishing.
* fix node logic and some other bugs

* more fixes

* socket helper refactor

* more fixes

* add tests

* refactor version provider

* fix build

* bump version
* fix node logic and some other bugs

* more fixes

* socket helper refactor

* more fixes

* add tests

* refactor version provider

* fix build

* bump version

* add tests
…2897)

- Modify buildPlatform() in __common.sh: when VERSIONS_TO_BUILD_OVERRIDE is set,
  filter versionsToBuild.txt to only matching versions and set OVERWRITE_EXISTING_SDKS=true
  to bypass blob existence checks
- Add ARG/ENV VERSIONS_TO_BUILD_OVERRIDE to nodejs, python, php, and php-composer Dockerfiles
  so the env var reaches build containers via --build-arg

Co-authored-by: Sarath chandra Bussa <sbussa@microsoft.com>
@sarsharma sarsharma requested a review from a team as a code owner April 9, 2026 13:16
@sarsharma sarsharma changed the title Oryx Acr dist: Minor fix and add more tests ACR SDK dist: Minor fix and add more tests Apr 9, 2026
@sarsharma sarsharma merged commit 76a5796 into main Apr 9, 2026
9 checks passed
@sarsharma sarsharma deleted the feature/oryx-sdk-acr-distribution branch April 9, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants