From 10a7d07d736ae14a133a1b3f935f658a8b91e9a9 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Mon, 24 Mar 2025 08:47:57 -0700 Subject: [PATCH 01/11] [CI] Add Publish Stage --- eng/pipelines/official.yml | 22 +++++++++++++++++++ .../templates/jobs/workload-build.yml | 12 ---------- .../templates/steps/workload-publish.yml | 22 +++++++++++++++++++ 3 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 eng/pipelines/templates/steps/workload-publish.yml diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index 762771fd1..7917a1030 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -116,3 +116,25 @@ extends: workloadDropNames: ${{ parameters.workloadDropNames }} primaryVsInsertionBranches: ${{ parameters.primaryVsInsertionBranches }} secondaryVsInsertionBranches: ${{ parameters.secondaryVsInsertionBranches }} + - stage: Publish + displayName: Publish + dependsOn: Build + condition: succeeded() + jobs: + - deployment: Publish + environment: 'DotNet-SDK-Workloads' + pool: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022 + os: windows + templateContext: + type: releaseJob + isProduction: true + strategy: + runOnce: + deploy: + steps: + - template: /eng/pipelines/templates/steps/workload-publish.yml@self + parameters: + publishToFeed: ${{ parameters.publishToFeed }} + feedForPublishing: ${{ parameters.feedForPublishing }} \ No newline at end of file diff --git a/eng/pipelines/templates/jobs/workload-build.yml b/eng/pipelines/templates/jobs/workload-build.yml index aa519dd4c..4efa56b6f 100644 --- a/eng/pipelines/templates/jobs/workload-build.yml +++ b/eng/pipelines/templates/jobs/workload-build.yml @@ -62,18 +62,6 @@ jobs: /p:StabilizePackageVersion=${{ parameters.stabilizePackageVersion }} displayName: 🟣 Build solution - - ${{ if eq(parameters.publishToFeed, true) }}: - - task: 1ES.PublishNuget@1 - displayName: 🟣 Publish NuGet package - inputs: - useDotNetTask: true - packagesToPush: $(Build.SourcesDirectory)/artifacts/packages/**/*.nupkg - packageParentPath: $(Build.SourcesDirectory)/artifacts/packages - publishVstsFeed: ${{ parameters.feedForPublishing }} - nuGetFeedType: internal - allowPackageConflicts: false - publishPackageMetadata: true - - ${{ if eq(parameters.createVSInsertion, true) }}: # The variables comprised of workloadShortName and workloadType are set during create-workload-drops.ps1 in Microsoft.NET.Workloads.Vsman.csproj. - ${{ each workloadShortName in parameters.workloadDropNames }}: diff --git a/eng/pipelines/templates/steps/workload-publish.yml b/eng/pipelines/templates/steps/workload-publish.yml new file mode 100644 index 000000000..f0529fbbb --- /dev/null +++ b/eng/pipelines/templates/steps/workload-publish.yml @@ -0,0 +1,22 @@ +parameters: +- name: publishToFeed + displayName: Publish to feed + type: boolean + default: false +- name: feedForPublishing + displayName: Feed for publishing + type: string + default: public/dotnet10-workloads + +steps: +- task: 1ES.PublishNuget@1 + condition: ${{ eq(parameters.publishToFeed, true) }} + displayName: 🟣 Publish NuGet package + inputs: + useDotNetTask: true + packagesToPush: $(Build.SourcesDirectory)/artifacts/packages/**/*.nupkg + packageParentPath: $(Build.SourcesDirectory)/artifacts/packages + publishVstsFeed: ${{ parameters.feedForPublishing }} + nuGetFeedType: internal + allowPackageConflicts: false + publishPackageMetadata: true \ No newline at end of file From 691bb33945a0f61da192cda8e74b5754a6c25270 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Tue, 25 Mar 2025 15:06:19 -0700 Subject: [PATCH 02/11] PR Comments --- eng/pipelines/official.yml | 2 +- eng/pipelines/templates/steps/workload-publish.yml | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index 7917a1030..ec6b2689a 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -122,7 +122,7 @@ extends: condition: succeeded() jobs: - deployment: Publish - environment: 'DotNet-SDK-Workloads' + environment: DotNet-SDK-Workloads pool: name: $(DncEngInternalBuildPool) image: 1es-windows-2022 diff --git a/eng/pipelines/templates/steps/workload-publish.yml b/eng/pipelines/templates/steps/workload-publish.yml index f0529fbbb..2ede19561 100644 --- a/eng/pipelines/templates/steps/workload-publish.yml +++ b/eng/pipelines/templates/steps/workload-publish.yml @@ -1,12 +1,6 @@ parameters: -- name: publishToFeed - displayName: Publish to feed - type: boolean - default: false -- name: feedForPublishing - displayName: Feed for publishing - type: string - default: public/dotnet10-workloads + publishToFeed: false + feedForPublishing: public/dotnet10-workloads steps: - task: 1ES.PublishNuget@1 From 2cab28d63c26fd6d4489264f24884bb2d500eff7 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Tue, 25 Mar 2025 15:26:08 -0700 Subject: [PATCH 03/11] PR Comments --- eng/pipelines/templates/steps/workload-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/templates/steps/workload-publish.yml b/eng/pipelines/templates/steps/workload-publish.yml index 2ede19561..262fa40b8 100644 --- a/eng/pipelines/templates/steps/workload-publish.yml +++ b/eng/pipelines/templates/steps/workload-publish.yml @@ -1,6 +1,6 @@ parameters: publishToFeed: false - feedForPublishing: public/dotnet10-workloads + feedForPublishing: '' steps: - task: 1ES.PublishNuget@1 From edb85896f6f903f1992643a89bd38c1ad206a880 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 26 Mar 2025 15:35:28 -0700 Subject: [PATCH 04/11] Share files between stages --- eng/pipelines/official.yml | 12 ++++++++++++ eng/pipelines/templates/steps/workload-publish.yml | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index ec6b2689a..d5581b77c 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -116,6 +116,13 @@ extends: workloadDropNames: ${{ parameters.workloadDropNames }} primaryVsInsertionBranches: ${{ parameters.primaryVsInsertionBranches }} secondaryVsInsertionBranches: ${{ parameters.secondaryVsInsertionBranches }} + - job: CopyArtifacts + displayName: Copy Artifacts + templateContext: + outputs: + - output: pipelineArtifact + path: '$(Build.SourcesDirectory)/artifacts' + artifact: artifactsPackagesDrop - stage: Publish displayName: Publish dependsOn: Build @@ -134,6 +141,11 @@ extends: runOnce: deploy: steps: + - task: 1ES.DownloadPipelineArtifact@1 + displayName: 📥 Download pipeline artifact + inputs: + artifactName: artifactsPackagesDrop + targetPath: $(Pipeline.Workspace)/artifactsPackagesDrop - template: /eng/pipelines/templates/steps/workload-publish.yml@self parameters: publishToFeed: ${{ parameters.publishToFeed }} diff --git a/eng/pipelines/templates/steps/workload-publish.yml b/eng/pipelines/templates/steps/workload-publish.yml index 262fa40b8..0c88c6483 100644 --- a/eng/pipelines/templates/steps/workload-publish.yml +++ b/eng/pipelines/templates/steps/workload-publish.yml @@ -8,8 +8,8 @@ steps: displayName: 🟣 Publish NuGet package inputs: useDotNetTask: true - packagesToPush: $(Build.SourcesDirectory)/artifacts/packages/**/*.nupkg - packageParentPath: $(Build.SourcesDirectory)/artifacts/packages + packagesToPush: $(Pipeline.Workspace)/artifactsPackagesDrop/packages/**/*.nupkg + packageParentPath: $(Pipeline.Workspace)/artifactsPackagesDrop/packages publishVstsFeed: ${{ parameters.feedForPublishing }} nuGetFeedType: internal allowPackageConflicts: false From cd91c879b5c202475df0f24ad3907b4d3690611d Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 26 Mar 2025 15:54:14 -0700 Subject: [PATCH 05/11] add copyArtifacts job --- eng/pipelines/official.yml | 7 ------- eng/pipelines/templates/jobs/workload-build.yml | 9 ++++++++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index d5581b77c..7301a3a3b 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -116,13 +116,6 @@ extends: workloadDropNames: ${{ parameters.workloadDropNames }} primaryVsInsertionBranches: ${{ parameters.primaryVsInsertionBranches }} secondaryVsInsertionBranches: ${{ parameters.secondaryVsInsertionBranches }} - - job: CopyArtifacts - displayName: Copy Artifacts - templateContext: - outputs: - - output: pipelineArtifact - path: '$(Build.SourcesDirectory)/artifacts' - artifact: artifactsPackagesDrop - stage: Publish displayName: Publish dependsOn: Build diff --git a/eng/pipelines/templates/jobs/workload-build.yml b/eng/pipelines/templates/jobs/workload-build.yml index 4efa56b6f..318e37c1c 100644 --- a/eng/pipelines/templates/jobs/workload-build.yml +++ b/eng/pipelines/templates/jobs/workload-build.yml @@ -107,4 +107,11 @@ jobs: targetBranch: ${{ secondaryInsertionBranch }} topicBranch: ${{ parameters.vsTopicBranch }} # SecondaryVSComponentJsonValues variable is set during create-workload-drops.ps1 in Microsoft.NET.Workloads.Vsman.csproj. - componentJsonValues: $(SecondaryVSComponentJsonValues) \ No newline at end of file + componentJsonValues: $(SecondaryVSComponentJsonValues) + - job: copyArtifacts + displayName: Copy Artifacts + templateContext: + outputs: + - output: pipelineArtifact + path: '$(Build.SourcesDirectory)/artifacts' + artifact: artifactsPackagesDrop \ No newline at end of file From 1bfd5cc8bec9a3cb0bd70042a4650bb07d403764 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 26 Mar 2025 15:57:51 -0700 Subject: [PATCH 06/11] Fix whitespace --- eng/pipelines/templates/jobs/workload-build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/templates/jobs/workload-build.yml b/eng/pipelines/templates/jobs/workload-build.yml index 318e37c1c..53c81a4e9 100644 --- a/eng/pipelines/templates/jobs/workload-build.yml +++ b/eng/pipelines/templates/jobs/workload-build.yml @@ -110,8 +110,8 @@ jobs: componentJsonValues: $(SecondaryVSComponentJsonValues) - job: copyArtifacts displayName: Copy Artifacts - templateContext: - outputs: - - output: pipelineArtifact - path: '$(Build.SourcesDirectory)/artifacts' - artifact: artifactsPackagesDrop \ No newline at end of file + templateContext: + outputs: + - output: pipelineArtifact + path: '$(Build.SourcesDirectory)/artifacts' + artifact: artifactsPackagesDrop \ No newline at end of file From 63bcf098829d0a4ff35846a6153e1e28b3c1abe3 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 26 Mar 2025 15:59:09 -0700 Subject: [PATCH 07/11] Add copyArtifacts depends on buildRepo --- eng/pipelines/templates/jobs/workload-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/templates/jobs/workload-build.yml b/eng/pipelines/templates/jobs/workload-build.yml index 53c81a4e9..d99d684ba 100644 --- a/eng/pipelines/templates/jobs/workload-build.yml +++ b/eng/pipelines/templates/jobs/workload-build.yml @@ -110,6 +110,7 @@ jobs: componentJsonValues: $(SecondaryVSComponentJsonValues) - job: copyArtifacts displayName: Copy Artifacts + dependsOn: buildRepo templateContext: outputs: - output: pipelineArtifact From 8cb103e59f1148bf46280415d27251feea3089ba Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Wed, 26 Mar 2025 16:19:30 -0700 Subject: [PATCH 08/11] Add outputs to buildRepo --- eng/pipelines/templates/jobs/workload-build.yml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/eng/pipelines/templates/jobs/workload-build.yml b/eng/pipelines/templates/jobs/workload-build.yml index d99d684ba..7ae2a7ecf 100644 --- a/eng/pipelines/templates/jobs/workload-build.yml +++ b/eng/pipelines/templates/jobs/workload-build.yml @@ -27,6 +27,11 @@ jobs: - job: buildRepo displayName: Build Repo timeoutInMinutes: 120 + templateContext: + outputs: + - output: pipelineArtifact + path: '$(Build.SourcesDirectory)/artifacts' + artifact: artifactsPackagesDrop pool: name: $(DncEngInternalBuildPool) image: 1es-windows-2022 @@ -107,12 +112,4 @@ jobs: targetBranch: ${{ secondaryInsertionBranch }} topicBranch: ${{ parameters.vsTopicBranch }} # SecondaryVSComponentJsonValues variable is set during create-workload-drops.ps1 in Microsoft.NET.Workloads.Vsman.csproj. - componentJsonValues: $(SecondaryVSComponentJsonValues) - - job: copyArtifacts - displayName: Copy Artifacts - dependsOn: buildRepo - templateContext: - outputs: - - output: pipelineArtifact - path: '$(Build.SourcesDirectory)/artifacts' - artifact: artifactsPackagesDrop \ No newline at end of file + componentJsonValues: $(SecondaryVSComponentJsonValues) \ No newline at end of file From 7c2116fc8266347952db8c555237b3b0e74c85d3 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Thu, 27 Mar 2025 08:44:11 -0700 Subject: [PATCH 09/11] Remove duplicate artifacts --- eng/pipelines/official.yml | 6 +++--- eng/pipelines/templates/jobs/workload-build.yml | 5 ----- eng/pipelines/templates/steps/workload-publish.yml | 4 ++-- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index 7301a3a3b..ec1753584 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -135,10 +135,10 @@ extends: deploy: steps: - task: 1ES.DownloadPipelineArtifact@1 - displayName: 📥 Download pipeline artifact + displayName: 📥 Download PackageArtifacts inputs: - artifactName: artifactsPackagesDrop - targetPath: $(Pipeline.Workspace)/artifactsPackagesDrop + artifactName: PackageArtifacts + targetPath: $(Pipeline.Workspace)/PackageArtifacts - template: /eng/pipelines/templates/steps/workload-publish.yml@self parameters: publishToFeed: ${{ parameters.publishToFeed }} diff --git a/eng/pipelines/templates/jobs/workload-build.yml b/eng/pipelines/templates/jobs/workload-build.yml index 7ae2a7ecf..4efa56b6f 100644 --- a/eng/pipelines/templates/jobs/workload-build.yml +++ b/eng/pipelines/templates/jobs/workload-build.yml @@ -27,11 +27,6 @@ jobs: - job: buildRepo displayName: Build Repo timeoutInMinutes: 120 - templateContext: - outputs: - - output: pipelineArtifact - path: '$(Build.SourcesDirectory)/artifacts' - artifact: artifactsPackagesDrop pool: name: $(DncEngInternalBuildPool) image: 1es-windows-2022 diff --git a/eng/pipelines/templates/steps/workload-publish.yml b/eng/pipelines/templates/steps/workload-publish.yml index 0c88c6483..d7d55008b 100644 --- a/eng/pipelines/templates/steps/workload-publish.yml +++ b/eng/pipelines/templates/steps/workload-publish.yml @@ -8,8 +8,8 @@ steps: displayName: 🟣 Publish NuGet package inputs: useDotNetTask: true - packagesToPush: $(Pipeline.Workspace)/artifactsPackagesDrop/packages/**/*.nupkg - packageParentPath: $(Pipeline.Workspace)/artifactsPackagesDrop/packages + packagesToPush: $(Pipeline.Workspace)/PackageArtifacts/*.nupkg + packageParentPath: $(Pipeline.Workspace)/PackageArtifacts publishVstsFeed: ${{ parameters.feedForPublishing }} nuGetFeedType: internal allowPackageConflicts: false From 4eeedbd11dbdeb0b7cf3c639a2b98f29176a0084 Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Thu, 27 Mar 2025 21:29:33 -0700 Subject: [PATCH 10/11] Refactor --- eng/pipelines/official.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index ec1753584..bf291cb44 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -107,8 +107,6 @@ extends: - template: /eng/pipelines/templates/jobs/workload-build.yml@self parameters: stabilizePackageVersion: ${{ parameters.stabilizePackageVersion }} - publishToFeed: ${{ parameters.publishToFeed }} - feedForPublishing: ${{ parameters.feedForPublishing }} createVSInsertion: ${{ parameters.createVSInsertion }} usePreComponentsForVSInsertion: ${{ parameters.usePreComponentsForVSInsertion }} includeNonShippingWorkloads: ${{ parameters.includeNonShippingWorkloads }} @@ -116,7 +114,7 @@ extends: workloadDropNames: ${{ parameters.workloadDropNames }} primaryVsInsertionBranches: ${{ parameters.primaryVsInsertionBranches }} secondaryVsInsertionBranches: ${{ parameters.secondaryVsInsertionBranches }} - - stage: Publish + - stage: Publish to feed displayName: Publish dependsOn: Build condition: succeeded() From e4ccfd83d56611e6429a22f24f990b9c12e08a6a Mon Sep 17 00:00:00 2001 From: Eduardo Villalpando Mello Date: Mon, 31 Mar 2025 11:48:20 -0700 Subject: [PATCH 11/11] Update naming as per pr suggestions --- eng/pipelines/official.yml | 7 ++++--- eng/pipelines/templates/steps/workload-publish.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/official.yml b/eng/pipelines/official.yml index bf291cb44..ddf50da9f 100644 --- a/eng/pipelines/official.yml +++ b/eng/pipelines/official.yml @@ -114,12 +114,13 @@ extends: workloadDropNames: ${{ parameters.workloadDropNames }} primaryVsInsertionBranches: ${{ parameters.primaryVsInsertionBranches }} secondaryVsInsertionBranches: ${{ parameters.secondaryVsInsertionBranches }} - - stage: Publish to feed + - stage: Publish displayName: Publish dependsOn: Build condition: succeeded() jobs: - - deployment: Publish + - deployment: PublishFeed + displayName: Publish to feed environment: DotNet-SDK-Workloads pool: name: $(DncEngInternalBuildPool) @@ -133,7 +134,7 @@ extends: deploy: steps: - task: 1ES.DownloadPipelineArtifact@1 - displayName: 📥 Download PackageArtifacts + displayName: 🟣 Import PackageArtifacts from Previous Stage inputs: artifactName: PackageArtifacts targetPath: $(Pipeline.Workspace)/PackageArtifacts diff --git a/eng/pipelines/templates/steps/workload-publish.yml b/eng/pipelines/templates/steps/workload-publish.yml index d7d55008b..49b6c50dd 100644 --- a/eng/pipelines/templates/steps/workload-publish.yml +++ b/eng/pipelines/templates/steps/workload-publish.yml @@ -5,7 +5,7 @@ parameters: steps: - task: 1ES.PublishNuget@1 condition: ${{ eq(parameters.publishToFeed, true) }} - displayName: 🟣 Publish NuGet package + displayName: 🟣 Publish package to AzDO inputs: useDotNetTask: true packagesToPush: $(Pipeline.Workspace)/PackageArtifacts/*.nupkg