From 737d92ee43a7f13351866f320bd507232bebd0e9 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Wed, 9 Aug 2023 17:44:37 +0000 Subject: [PATCH 1/9] Add verbose to clone --- .../azureDevOps/templates/release-PublishPackageMsftCom.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index b5dc97b9ab6..1f91d79af12 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -9,7 +9,8 @@ steps: displayName: Set Package version - pwsh: | - git clone https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools '$(Pipeline.Workspace)/tools' + Write-Verbose -verbose "git clone --verbose https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools '$(Pipeline.Workspace)/tools'" + git clone --verbose https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools '$(Pipeline.Workspace)/tools' displayName: Clone Internal-PowerShellTeam-Tools from MSCodeHub - pwsh: | From ab5538c7d6f198fd71ba5ce3d91bd52490aca6e6 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Mon, 14 Aug 2023 22:26:13 +0000 Subject: [PATCH 2/9] Add skip publish parameter --- tools/releaseBuild/azureDevOps/releasePipeline.yml | 10 +++++++++- .../templates/release-PublishPackageMsftCom.yml | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/releaseBuild/azureDevOps/releasePipeline.yml b/tools/releaseBuild/azureDevOps/releasePipeline.yml index 6955e8be127..f3b3c02a5f4 100644 --- a/tools/releaseBuild/azureDevOps/releasePipeline.yml +++ b/tools/releaseBuild/azureDevOps/releasePipeline.yml @@ -1,9 +1,15 @@ trigger: none # needed to disable CI trigger and allow manual trigger -# when the branch is same as pipline source, the latest build from the source is used. +# when the branch is same as pipeline source, the latest build from the source is used. # all environment used are for manual tasks and approvals. +parameters: + - name: skipPackagesMsftComPublish + displayName: Skip actual publishing to Packages.microsoft.com, AFTER we upload it. Used to test the publishing script. + default: false + type: boolean + resources: pipelines: - pipeline: releasePipeline @@ -353,6 +359,8 @@ stages: - group: 'packages.microsoft.com' steps: - template: templates/release-PublishPackageMsftCom.yml + parameters: + skipPublish: ${{ parameters.skipPackagesMsftComPublish }} - stage: PublishSymbols displayName: Publish symbols diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index 1f91d79af12..84ae3609859 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -1,3 +1,8 @@ +parameters: + - name: skipPublish + default: false + type: boolean + steps: - template: release-SetReleaseTagAndContainerName.yml @@ -15,7 +20,6 @@ steps: - pwsh: | $metadata = Get-Content -Path "$(Build.SourcesDirectory)/tools/metadata.json" -Raw | ConvertFrom-Json - Write-Verbose -Verbose "$(ReleaseTag) $(RepoClientCliClientID) $(RepoClientCliSecret) $(AzureVersion) $($metadata.LTSRelease.Latest)" $params = @{ ReleaseTag = "$(ReleaseTag)" AadClientId = "$(RepoClientCliClientID)" @@ -23,6 +27,8 @@ steps: BlobFolderName = "$(AzureVersion)" LTS = $metadata.LTSRelease.Latest ForProduction = $true + SkipPublish = $${{ parameters.skipPublish }} } + $params | Out-String -width 9999 | write-Verbose -Verbose & '$(Pipeline.Workspace)/tools/packages.microsoft.com/releaseLinuxPackages.ps1' -MappingFilePath '$(System.DefaultWorkingDirectory)/tools/packages.microsoft.com/mapping.json' @params displayName: Run release script From 4ca3b8e864dc10104455ff715aaf787899186f43 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Tue, 15 Aug 2023 00:25:33 +0000 Subject: [PATCH 3/9] install the pmc cli --- .../release-PublishPackageMsftCom.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index 84ae3609859..ef71116ed8f 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -18,6 +18,25 @@ steps: git clone --verbose https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools '$(Pipeline.Workspace)/tools' displayName: Clone Internal-PowerShellTeam-Tools from MSCodeHub +- pwsh: | + sudo apt update + sudo apt install -y python3 python3-pip python-is-python3 + displayName: Install Python + +- task: PipAuthenticate@1 + inputs: + artifactFeeds: 'pmc' + pythonDownloadServiceConnections: pmcDownload + +- pwsh: | + pip install pmc-cli + + $newPath = (resolve-path '~/.local/bin').providerpath + $vstsCommandString = "vso[task.setvariable variable=PATH]${env:PATH}:$newPath" + Write-Host "sending " + $vstsCommandString + Write-Host "##$vstsCommandString" + displayName: Install pmc cli + - pwsh: | $metadata = Get-Content -Path "$(Build.SourcesDirectory)/tools/metadata.json" -Raw | ConvertFrom-Json $params = @{ From 6fb23f4a3d62c2723bff66ab022f87f1388ad77a Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Tue, 29 Aug 2023 21:02:41 +0000 Subject: [PATCH 4/9] Address PR comments --- .../templates/release-PublishPackageMsftCom.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index ef71116ed8f..6708382b35b 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -14,8 +14,12 @@ steps: displayName: Set Package version - pwsh: | - Write-Verbose -verbose "git clone --verbose https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools '$(Pipeline.Workspace)/tools'" - git clone --verbose https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools '$(Pipeline.Workspace)/tools' + $gitArgs = "clone", + "--verbose", + "https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools", + '$(Pipeline.Workspace)/tools' + $gitArgs | Write-Verbose -Verbose + git $gitArgs displayName: Clone Internal-PowerShellTeam-Tools from MSCodeHub - pwsh: | @@ -42,12 +46,12 @@ steps: $params = @{ ReleaseTag = "$(ReleaseTag)" AadClientId = "$(RepoClientCliClientID)" - AadClientSecret = "$(RepoClientCliSecret)" BlobFolderName = "$(AzureVersion)" LTS = $metadata.LTSRelease.Latest ForProduction = $true SkipPublish = $${{ parameters.skipPublish }} + MappingFilePath = '$(System.DefaultWorkingDirectory)/tools/packages.microsoft.com/mapping.json' } - $params | Out-String -width 9999 | write-Verbose -Verbose - & '$(Pipeline.Workspace)/tools/packages.microsoft.com/releaseLinuxPackages.ps1' -MappingFilePath '$(System.DefaultWorkingDirectory)/tools/packages.microsoft.com/mapping.json' @params + $params | Out-String -width 9999 -Stream | write-Verbose -Verbose + & '$(Pipeline.Workspace)/tools/packages.microsoft.com/releaseLinuxPackages.ps1' @params displayName: Run release script From 3c0acdddfdef903c2b221f3de7a9abe6fee85bb8 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Tue, 29 Aug 2023 21:03:03 +0000 Subject: [PATCH 5/9] use updated path --- .../azureDevOps/templates/release-PublishPackageMsftCom.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index 6708382b35b..950f175f911 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -52,6 +52,8 @@ steps: SkipPublish = $${{ parameters.skipPublish }} MappingFilePath = '$(System.DefaultWorkingDirectory)/tools/packages.microsoft.com/mapping.json' } + $params | Out-String -width 9999 -Stream | write-Verbose -Verbose - & '$(Pipeline.Workspace)/tools/packages.microsoft.com/releaseLinuxPackages.ps1' @params + + & '$(Pipeline.Workspace)/tools/packages.microsoft.com-v4/releaseLinuxPackages.ps1' @params displayName: Run release script From 5251b2d29a15cd37e7015acc266236b054c2242f Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Wed, 30 Aug 2023 20:31:37 +0000 Subject: [PATCH 6/9] switch to main-mirror --- tools/releaseBuild/azureDevOps/releasePipeline.yml | 2 +- .../azureDevOps/templates/release-PublishPackageMsftCom.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/releaseBuild/azureDevOps/releasePipeline.yml b/tools/releaseBuild/azureDevOps/releasePipeline.yml index f3b3c02a5f4..1c2b2cd767d 100644 --- a/tools/releaseBuild/azureDevOps/releasePipeline.yml +++ b/tools/releaseBuild/azureDevOps/releasePipeline.yml @@ -23,7 +23,7 @@ resources: type: git trigger: none name: Internal-PowerShellTeam-Tools - ref: master + ref: main-mirror variables: - name: runCodesignValidationInjection diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index 950f175f911..773a2d7b337 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -14,8 +14,11 @@ steps: displayName: Set Package version - pwsh: | + $branch = 'main-mirror' $gitArgs = "clone", "--verbose", + "--branch", + "$branch", "https://$(AzureDevOpsPat)@mscodehub.visualstudio.com/PowerShellCore/_git/Internal-PowerShellTeam-Tools", '$(Pipeline.Workspace)/tools' $gitArgs | Write-Verbose -Verbose From 1291d8ee1db7bfc1e9a9512510b743b96b873fd4 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Wed, 30 Aug 2023 22:14:11 +0000 Subject: [PATCH 7/9] Don't install python --- .../azureDevOps/templates/release-PublishPackageMsftCom.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index 773a2d7b337..fe36f855cd3 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -25,11 +25,6 @@ steps: git $gitArgs displayName: Clone Internal-PowerShellTeam-Tools from MSCodeHub -- pwsh: | - sudo apt update - sudo apt install -y python3 python3-pip python-is-python3 - displayName: Install Python - - task: PipAuthenticate@1 inputs: artifactFeeds: 'pmc' From ce53d7cf2603d125c01c51039260a06e1550fa1f Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Thu, 31 Aug 2023 12:55:24 -0700 Subject: [PATCH 8/9] Update tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml --- tools/releaseBuild/azureDevOps/releasePipeline.yml | 6 ++++++ .../templates/release-PublishPackageMsftCom.yml | 2 +- .../azureDevOps/templates/release-ReleaseToNuGet.yml | 9 +++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tools/releaseBuild/azureDevOps/releasePipeline.yml b/tools/releaseBuild/azureDevOps/releasePipeline.yml index d969f3bf9ca..e018b7fd4f9 100644 --- a/tools/releaseBuild/azureDevOps/releasePipeline.yml +++ b/tools/releaseBuild/azureDevOps/releasePipeline.yml @@ -9,6 +9,10 @@ parameters: displayName: Skip actual publishing to Packages.microsoft.com, AFTER we upload it. Used to test the publishing script. default: false type: boolean + - name: skipNugetPublish + displayName: Skip nuget publishing. Used in testing publising stage. + default: false + type: boolean resources: pipelines: @@ -346,6 +350,8 @@ stages: steps: - template: templates/release-ReleaseToNuGet.yml + parameters: + skipPublish: ${{ parameters.skipNugetPublish }} - job: PublishPkgsMsftCom diff --git a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml index fe36f855cd3..0333c77b88c 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml @@ -43,7 +43,7 @@ steps: $metadata = Get-Content -Path "$(Build.SourcesDirectory)/tools/metadata.json" -Raw | ConvertFrom-Json $params = @{ ReleaseTag = "$(ReleaseTag)" - AadClientId = "$(RepoClientCliClientID)" + AadClientId = "$(PmcCliClientID)" BlobFolderName = "$(AzureVersion)" LTS = $metadata.LTSRelease.Latest ForProduction = $true diff --git a/tools/releaseBuild/azureDevOps/templates/release-ReleaseToNuGet.yml b/tools/releaseBuild/azureDevOps/templates/release-ReleaseToNuGet.yml index 117cf8f91df..33a72f56bbb 100644 --- a/tools/releaseBuild/azureDevOps/templates/release-ReleaseToNuGet.yml +++ b/tools/releaseBuild/azureDevOps/templates/release-ReleaseToNuGet.yml @@ -1,5 +1,11 @@ +parameters: + - name: skipPublish + default: false + type: boolean + steps: - task: DownloadPipelineArtifact@2 + condition: and(eq('${{ parameters.skipPublish }}', 'false'), succeeded()) inputs: source: specific project: PowerShellCore @@ -12,6 +18,7 @@ steps: path: '$(Pipeline.Workspace)/releasePipeline/finalResults' - task: DownloadPipelineArtifact@2 + condition: and(eq('${{ parameters.skipPublish }}', 'false'), succeeded()) inputs: source: specific project: PowerShellCore @@ -37,9 +44,11 @@ steps: Get-ChildItem "$(Pipeline.Workspace)/release" -recurse displayName: Download and capture nupkgs + condition: and(eq('${{ parameters.skipPublish }}', 'false'), succeeded()) - task: NuGetCommand@2 displayName: 'NuGet push' + condition: and(eq('${{ parameters.skipPublish }}', 'false'), succeeded()) inputs: command: push packagesToPush: '$(Pipeline.Workspace)/release/*.nupkg' From 17e9356dd7b3b4b0d405bc289c9d14303e6dc0e6 Mon Sep 17 00:00:00 2001 From: Travis Plunk Date: Fri, 1 Sep 2023 10:14:10 -0700 Subject: [PATCH 9/9] Update tools/releaseBuild/azureDevOps/releasePipeline.yml --- tools/releaseBuild/azureDevOps/releasePipeline.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/releaseBuild/azureDevOps/releasePipeline.yml b/tools/releaseBuild/azureDevOps/releasePipeline.yml index e018b7fd4f9..5ca465a74f1 100644 --- a/tools/releaseBuild/azureDevOps/releasePipeline.yml +++ b/tools/releaseBuild/azureDevOps/releasePipeline.yml @@ -10,7 +10,7 @@ parameters: default: false type: boolean - name: skipNugetPublish - displayName: Skip nuget publishing. Used in testing publising stage. + displayName: Skip nuget publishing. Used in testing publishing stage. default: false type: boolean