diff --git a/build/AzurePipelinesTemplates/WinUI-LocalizeResources-Steps.yml b/build/AzurePipelinesTemplates/WinUI-LocalizeResources-Steps.yml index 2d74c3f98..0775cfe9a 100644 --- a/build/AzurePipelinesTemplates/WinUI-LocalizeResources-Steps.yml +++ b/build/AzurePipelinesTemplates/WinUI-LocalizeResources-Steps.yml @@ -99,6 +99,25 @@ steps: packagesToPush: '${{ parameters.nupkgDir }}\Microsoft.Internal.WinUILocalizationResources.${{ parameters.packageVersion }}.nupkg' packageParentPath: '${{ parameters.nupkgDir }}' + - task: NuGetToolInstaller@1 + displayName: 'Ensure NuGet is available for shine-oss publishing' + + - task: NuGetAuthenticate@1 + displayName: 'Authenticate to shine-oss feed' + inputs: + azureDevOpsServiceConnection: ShineOSS-AzureDevOps-Push + feedUrl: https://pkgs.dev.azure.com/shine-oss/microsoft-ui-xaml/_packaging/WinUI-Dependencies/nuget/v3/index.json + + - task: CmdLine@2 + displayName: 'NuGet-Localization-Resources push to shine-oss WinUI-Dependencies feed' + inputs: + script: >- + nuget.exe push "${{ parameters.nupkgDir }}\Microsoft.Internal.WinUILocalizationResources.${{ parameters.packageVersion }}.nupkg" + -Source "https://pkgs.dev.azure.com/shine-oss/microsoft-ui-xaml/_packaging/WinUI-Dependencies/nuget/v3/index.json" + -ApiKey AzureArtifacts + -NonInteractive + -SkipDuplicate + # Check for changes and create a new branch if required - powershell: | & "$env:Build_SourcesDirectory\build\PipelineScripts\ApplyLocalizationUpdates.ps1" ` diff --git a/docs/localization-process.md b/docs/localization-process.md index b9aa8abd0..e436f6e29 100644 --- a/docs/localization-process.md +++ b/docs/localization-process.md @@ -43,7 +43,9 @@ If you want to manually schedule a pipeline run, use the following steps: No need to run build here. + Touchdown task takes .mui & .resw files and uploads to Touchdown service + Touchdown task retrieves currently localized files being stored in Touchdown -3. Currently available localized resource files get placed into a nuget package and uploaded to the internal dependency feed. +3. Currently available localized resource files get placed into a `Microsoft.Internal.WinUILocalizationResources` NuGet package. + The same package version is uploaded to both the internal dependency feed and the shine-oss `WinUI-Dependencies` feed + before the pipeline proposes localization updates, so OSS builds can restore the updated version. 1. The place holder files without localized data get immediately created with successful run. However, it takes couple of days for Touchdown to localize new strings. Once files are generated, the next localization pipeline run will pick up the changes. 4. The pipeline will automatically detect when there are changes to localization files and create a Pull Request titled 'Localization Update YYYYMMDD'. @@ -55,6 +57,9 @@ If you want to manually schedule a pipeline run, use the following steps: is automatically updated in `packages.config` for the `WinUILocalizationResources` package. * Updates to .resw files are checked-in as part of the PR the pipeline opens +* Publishing to shine-oss requires the cross-organization service connection to be authorized for the localization pipeline. + Its identity must have Feed Publisher (Contributor) permission on `WinUI-Dependencies`. + An authentication or publishing failure stops the pipeline before it proposes a package-version update. ## Responsibility & Requirements