diff --git a/eng/pipelines/templates/stages/publish-extension.yml b/eng/pipelines/templates/stages/publish-extension.yml
index ada56ed662c..3f1b63e94b0 100644
--- a/eng/pipelines/templates/stages/publish-extension.yml
+++ b/eng/pipelines/templates/stages/publish-extension.yml
@@ -52,19 +52,57 @@ stages:
value: Registry update
jobs:
- - deployment: Publish_Release
- condition: >-
- and(
- succeeded(),
- ne('true', variables['Skip.Publish'])
- )
- # Nightly publishes unattended, so it uses the no-approval 'none'
- # environment and is not a governed production release. Manual releases
- # go through the approval-gated package-publish environment.
+ - ${{ if ne(variables['Build.Reason'], 'Schedule') }}:
+ - job: Create_GitHub_Release
+ dependsOn: []
+ condition: >-
+ and(
+ succeeded(),
+ ne('true', variables['Skip.Publish'])
+ )
+
+ pool:
+ name: $(LINUXPOOL)
+ image: $(LINUXVMIMAGE)
+ os: linux
+
+ steps:
+ - checkout: self
+
+ - template: /eng/pipelines/templates/steps/extension-set-metadata-variables.yml
+
+ - task: DownloadPipelineArtifact@2
+ displayName: Download release artifact
+ inputs:
+ artifactName: release
+ targetPath: release
+
+ - task: DownloadPipelineArtifact@2
+ displayName: Download changelog artifact
+ inputs:
+ artifactName: changelog
+ targetPath: changelog
+
+ - template: /eng/pipelines/templates/steps/publish-extension-github-release.yml
+ parameters:
+ TagPrefix: azd-ext-${{ parameters.SanitizedExtensionId }}
+ TagVersion: $(EXT_VERSION)
+
+ # Storage upload — runs for both nightly and manual. 1ES releaseJob keeps
+ # production governance (package-publish approval on manual runs). No
+ # GH_TOKEN needed here. azcopy --overwrite=true makes retry safe.
+ - deployment: Publish_Storage
${{ if eq(variables['Build.Reason'], 'Schedule') }}:
+ dependsOn: []
environment: none
${{ else }}:
+ dependsOn: Create_GitHub_Release
environment: package-publish
+ condition: >-
+ and(
+ succeeded(),
+ ne('true', variables['Skip.Publish'])
+ )
pool:
name: azsdk-pool
@@ -82,10 +120,6 @@ stages:
artifactName: release
targetPath: release
- - input: pipelineArtifact
- artifactName: changelog
- targetPath: changelog
-
strategy:
runOnce:
deploy:
@@ -103,28 +137,22 @@ stages:
displayName: Set StorageUploadLocations (nightly)
- ${{ else }}:
- pwsh: |
- # Initial upload locations
$publishUploadLocations = '${{ parameters.SanitizedExtensionId }}/$(EXT_VERSION)'
-
Write-Host "Setting StorageUploadLocations to $publishUploadLocations"
Write-Host "###vso[task.setvariable variable=StorageUploadLocations]$publishUploadLocations"
displayName: Set StorageUploadLocations
- - template: /eng/pipelines/templates/steps/publish-extension.yml
+ - template: /eng/pipelines/templates/steps/publish-extension-storage.yml
parameters:
PublishUploadLocations: $(StorageUploadLocations)
- TagPrefix: azd-ext-${{ parameters.SanitizedExtensionId }}
- TagVersion: $(EXT_VERSION)
- # Nightly builds publish to storage only; no GitHub release since that'd just be a ton of clutter.
- # Nightly extension consumers just grab it from blob storage.
- ${{ if eq(variables['Build.Reason'], 'Schedule') }}:
- CreateGitHubRelease: false
+
# Updates the selected extension registry after the GitHub Release exists.
# Production registry updates also refresh global command snapshots.
# Mirrors Increment_Version in eng/pipelines/templates/stages/publish.yml.
- job: Update_Registry
- dependsOn: Publish_Release
+ dependsOn:
+ - Publish_Storage
condition: >-
and(
succeeded(),
@@ -139,6 +167,8 @@ stages:
steps:
- checkout: self
+ - template: /eng/common/pipelines/templates/steps/login-to-github.yml
+
- template: /eng/pipelines/templates/steps/extension-set-metadata-variables.yml
- template: /eng/pipelines/templates/steps/setup-go.yml
@@ -243,7 +273,7 @@ stages:
--version "$(EXT_VERSION)"
displayName: Update $(ExtensionRegistryFile) (azd x publish)
env:
- GH_TOKEN: $(azuresdk-github-pat)
+ GH_TOKEN: $(GH_TOKEN)
- ${{ if ne(parameters.PublishToDevRegistry, true) }}:
- bash: |
diff --git a/eng/pipelines/templates/stages/publish.yml b/eng/pipelines/templates/stages/publish.yml
index 45ce4bc1a59..75d4948762a 100644
--- a/eng/pipelines/templates/stages/publish.yml
+++ b/eng/pipelines/templates/stages/publish.yml
@@ -459,96 +459,137 @@ stages:
PublishUploadLocations: pr/$(PRNumber)
UploadInstaller: true
- - pwsh: |
- $urlBase = "$(publish-storage-static-host)/azd/standalone/pr/$(PRNumber)"
- Write-Host "##vso[task.setvariable variable=UrlBase;isOutput=true]$urlBase"
- name: GenerateUrlBase
- displayName: Set UrlBase
+ - job: Comment_On_PR
+ dependsOn: Publish_For_PR
+ condition: >-
+ and(
+ succeeded(),
+ ne(variables['Skip.Release'], 'true'),
+ or(
+ eq('PullRequest', variables['BuildReasonOverride']),
+ and(
+ eq('', variables['BuildReasonOverride']),
+ eq(variables['Build.Reason'], 'PullRequest')
+ )
+ )
+ )
- - pwsh: |
- $urlBase = "$(GenerateUrlBase.UrlBase)"
- $linuxReleaseUrl = "$urlBase/azd-linux-amd64.tar.gz"
- $linuxReleaseUrlArm64 = "$urlBase/azd-linux-arm64.tar.gz"
- $macosReleaseUrl = "$urlBase/azd-darwin-amd64.zip"
- $macosReleaseUrlArm64 = "$urlBase/azd-darwin-arm64.zip"
- $windowsReleaseUrl = "$urlBase/azd-windows-amd64.zip"
- $windowsReleaseUrlArm64 = "$urlBase/azd-windows-arm64-alpha.zip"
- $msiReleaseUrl = "$urlBase/azd-windows-amd64.msi"
+ pool:
+ name: $(LINUXPOOL)
+ image: $(LINUXVMIMAGE)
+ os: linux
+
+ steps:
+ - checkout: self
+
+ - task: DownloadPipelineArtifact@2
+ displayName: Download docs artifact
+ inputs:
+ artifactName: docs
+ targetPath: docs
- $refDocContent = Get-Content docs/azd.md -Raw
+ - pwsh: |
+ $PRNumber = '$(System.PullRequest.PullRequestNumber)'
+ if ($env:PRNUMBEROVERRIDE) {
+ Write-Host "PR Number override: $($env:PRNUMBEROVERRIDE)"
+ $PRNumber = "$($env:PRNUMBEROVERRIDE)"
+ }
+ Write-Host "##vso[task.setvariable variable=PRNumber]$PRNumber"
+ displayName: Set PR Number Variable
- $content = @"
-
- ## Azure Dev CLI Install Instructions
+ - pwsh: |
+ $urlBase = "$(publish-storage-static-host)/azd/standalone/pr/$(PRNumber)"
+ Write-Host "##vso[task.setvariable variable=UrlBase;isOutput=true]$urlBase"
+ name: GenerateUrlBase
+ displayName: Set UrlBase
- ### Install scripts
+ - pwsh: |
+ $urlBase = "$(GenerateUrlBase.UrlBase)"
+ $linuxReleaseUrl = "$urlBase/azd-linux-amd64.tar.gz"
+ $linuxReleaseUrlArm64 = "$urlBase/azd-linux-arm64.tar.gz"
+ $macosReleaseUrl = "$urlBase/azd-darwin-amd64.zip"
+ $macosReleaseUrlArm64 = "$urlBase/azd-darwin-arm64.zip"
+ $windowsReleaseUrl = "$urlBase/azd-windows-amd64.zip"
+ $windowsReleaseUrlArm64 = "$urlBase/azd-windows-arm64-alpha.zip"
+ $msiReleaseUrl = "$urlBase/azd-windows-amd64.msi"
- #### MacOS/Linux
+ $refDocContent = Get-Content docs/azd.md -Raw
- > May elevate using ``sudo`` on some platforms and configurations
+ $content = @"
+
+ ## Azure Dev CLI Install Instructions
- bash:
- ``````
- curl -fsSL $urlBase/uninstall-azd.sh | bash;
- curl -fsSL $urlBase/install-azd.sh | bash -s -- --base-url $urlBase --version '' --verbose --skip-verify
- ``````
+ ### Install scripts
- pwsh:
- ``````
- Invoke-RestMethod '$urlBase/uninstall-azd.ps1' -OutFile uninstall-azd.ps1; ./uninstall-azd.ps1
- Invoke-RestMethod '$urlBase/install-azd.ps1' -OutFile install-azd.ps1; ./install-azd.ps1 -BaseUrl '$urlBase' -Version '' -SkipVerify -Verbose
- ``````
+ #### MacOS/Linux
+ > May elevate using ``sudo`` on some platforms and configurations
- #### Windows
+ bash:
+ ``````
+ curl -fsSL $urlBase/uninstall-azd.sh | bash;
+ curl -fsSL $urlBase/install-azd.sh | bash -s -- --base-url $urlBase --version '' --verbose --skip-verify
+ ``````
- PowerShell install
+ pwsh:
+ ``````
+ Invoke-RestMethod '$urlBase/uninstall-azd.ps1' -OutFile uninstall-azd.ps1; ./uninstall-azd.ps1
+ Invoke-RestMethod '$urlBase/install-azd.ps1' -OutFile install-azd.ps1; ./install-azd.ps1 -BaseUrl '$urlBase' -Version '' -SkipVerify -Verbose
+ ``````
- ``````
- powershell -c "Set-ExecutionPolicy Bypass Process; irm '$urlBase/uninstall-azd.ps1' > uninstall-azd.ps1; ./uninstall-azd.ps1;"
- powershell -c "Set-ExecutionPolicy Bypass Process; irm '$urlBase/install-azd.ps1' > install-azd.ps1; ./install-azd.ps1 -BaseUrl '$urlBase' -Version '' -SkipVerify -Verbose;"
- ``````
- MSI install
- ``````
- powershell -c "irm '$msiReleaseUrl' -OutFile azd-windows-amd64.msi; msiexec /i azd-windows-amd64.msi /qn"
- ``````
+ #### Windows
- ### Standalone Binary
+ PowerShell install
- * Linux -
- * x86_64 - $linuxReleaseUrl
- * ARM64 - $linuxReleaseUrlArm64
- * MacOS -
- * x86_64 - $macosReleaseUrl
- * ARM64 - $macosReleaseUrlArm64
- * Windows -
- * x86_64 - $windowsReleaseUrl
- * ARM64 - $windowsReleaseUrlArm64
+ ``````
+ powershell -c "Set-ExecutionPolicy Bypass Process; irm '$urlBase/uninstall-azd.ps1' > uninstall-azd.ps1; ./uninstall-azd.ps1;"
+ powershell -c "Set-ExecutionPolicy Bypass Process; irm '$urlBase/install-azd.ps1' > install-azd.ps1; ./install-azd.ps1 -BaseUrl '$urlBase' -Version '' -SkipVerify -Verbose;"
+ ``````
- ### MSI
+ MSI install
+ ``````
+ powershell -c "irm '$msiReleaseUrl' -OutFile azd-windows-amd64.msi; msiexec /i azd-windows-amd64.msi /qn"
+ ``````
- * x86_64 - $msiReleaseUrl
+ ### Standalone Binary
- ## Documentation
+ * Linux -
+ * x86_64 - $linuxReleaseUrl
+ * ARM64 - $linuxReleaseUrlArm64
+ * MacOS -
+ * x86_64 - $macosReleaseUrl
+ * ARM64 - $macosReleaseUrlArm64
+ * Windows -
+ * x86_64 - $windowsReleaseUrl
+ * ARM64 - $windowsReleaseUrlArm64
-
- learn.microsoft.com documentation
+ ### MSI
- $refDocContent
+ * x86_64 - $msiReleaseUrl
-
- "@
- $file = New-TemporaryFile
- Set-Content -Path $file -Value $content
- Write-Host "##vso[task.setvariable variable=CommentBodyFile]$file"
- displayName: Write body content to temporary file
+ ## Documentation
- - template: /eng/pipelines/templates/steps/update-prcomment.yml
- parameters:
- PrNumber: $(PRNumber)
- BodyFile: $(CommentBodyFile)
- Tag: ''
+
+ learn.microsoft.com documentation
+
+ $refDocContent
+
+
+ "@
+ $file = New-TemporaryFile
+ Set-Content -Path $file -Value $content
+ Write-Host "##vso[task.setvariable variable=CommentBodyFile]$file"
+ displayName: Write body content to temporary file
+
+ - template: /eng/common/pipelines/templates/steps/login-to-github.yml
+
+ - template: /eng/pipelines/templates/steps/update-prcomment.yml
+ parameters:
+ PrNumber: $(PRNumber)
+ BodyFile: $(CommentBodyFile)
+ Tag: ''
+ GitHubToken: $(GH_TOKEN)
- stage: PublishInstallers
dependsOn: Sign
diff --git a/eng/pipelines/templates/stages/vscode-publish-integration.yml b/eng/pipelines/templates/stages/vscode-publish-integration.yml
index 4f73d9824c4..8b62a21e501 100644
--- a/eng/pipelines/templates/stages/vscode-publish-integration.yml
+++ b/eng/pipelines/templates/stages/vscode-publish-integration.yml
@@ -100,28 +100,65 @@ stages:
parameters:
PublishLocations: azd/vscode/pr/$(PRNumber)
- - pwsh: |
- $downloadUrl = "$(publish-storage-static-host)/azd/vscode/pr/$(PRNumber)/azure-dev-$(VSIX_VERSION).vsix"
-
- $content = @"
-
- ## VSCode Extension Installation Instructions
-
- 1. Download the extension at $downloadUrl
- 2. Extract the extension from the compressed file
- 3. In vscode
- a. Open "Extensions" (Ctrl+Shift+X)
- b. Click the \`...\` menu at top of Extensions sidebar
- c. Click "Install from VSIX"
- d. Select location of downloaded file
- "@
- $file = New-TemporaryFile
- Set-Content -Path $file -Value $content
- Write-Host "##vso[task.setvariable variable=CommentBodyFile]$file"
- displayName: Write body content to temporary file
-
- - template: /eng/pipelines/templates/steps/update-prcomment.yml
- parameters:
- PrNumber: $(PRNumber)
- Tag: ''
- BodyFile: $(CommentBodyFile)
+ - job: Comment_On_PR
+ dependsOn: Publish_For_PR
+ condition: >-
+ and(
+ succeeded(),
+ ne(variables['Skip.Release'], 'true'),
+ or(
+ eq('PullRequest', variables['BuildReasonOverride']),
+ and(
+ eq('', variables['BuildReasonOverride']),
+ eq(variables['Build.Reason'], 'PullRequest')
+ )
+ )
+ )
+
+ pool:
+ name: $(LINUXPOOL)
+ image: $(LINUXVMIMAGE)
+ os: linux
+
+ steps:
+ - checkout: self
+
+ - template: /eng/pipelines/templates/steps/vscode-set-metadata-variables.yml
+
+ - pwsh: |
+ $PRNumber = '$(System.PullRequest.PullRequestNumber)'
+ if ($env:PRNUMBEROVERRIDE) {
+ Write-Host "PR Number override: $($env:PRNUMBEROVERRIDE)"
+ $PRNumber = $env:PRNUMBEROVERRIDE
+ }
+ Write-Host "##vso[task.setvariable variable=PRNumber]$PRNumber"
+ displayName: Set PR Number Variable
+
+ - pwsh: |
+ $downloadUrl = "$(publish-storage-static-host)/azd/vscode/pr/$(PRNumber)/azure-dev-$(VSIX_VERSION).vsix"
+
+ $content = @"
+
+ ## VSCode Extension Installation Instructions
+
+ 1. Download the extension at $downloadUrl
+ 2. Extract the extension from the compressed file
+ 3. In vscode
+ a. Open "Extensions" (Ctrl+Shift+X)
+ b. Click the \`...\` menu at top of Extensions sidebar
+ c. Click "Install from VSIX"
+ d. Select location of downloaded file
+ "@
+ $file = New-TemporaryFile
+ Set-Content -Path $file -Value $content
+ Write-Host "##vso[task.setvariable variable=CommentBodyFile]$file"
+ displayName: Write body content to temporary file
+
+ - template: /eng/common/pipelines/templates/steps/login-to-github.yml
+
+ - template: /eng/pipelines/templates/steps/update-prcomment.yml
+ parameters:
+ PrNumber: $(PRNumber)
+ Tag: ''
+ BodyFile: $(CommentBodyFile)
+ GitHubToken: $(GH_TOKEN)
\ No newline at end of file
diff --git a/eng/pipelines/templates/steps/publish-extension-github-release.yml b/eng/pipelines/templates/steps/publish-extension-github-release.yml
new file mode 100644
index 00000000000..6da9df3ded4
--- /dev/null
+++ b/eng/pipelines/templates/steps/publish-extension-github-release.yml
@@ -0,0 +1,58 @@
+parameters:
+ - name: TagPrefix
+ type: string
+ - name: TagVersion
+ type: string
+
+steps:
+ - template: /eng/common/pipelines/templates/steps/login-to-github.yml
+
+ # Fail fast if the tag/release already exists. With this split, retrying the
+ # downstream storage-upload deployment job won't trip this guard — only a
+ # retry of THIS regular job would.
+ - pwsh: |
+ $tag = "${{ parameters.TagPrefix }}_${{ parameters.TagVersion }}"
+ Write-Host "Release tag: $tag"
+
+ $existingTag = gh api /repos/$(Build.Repository.Name)/tags | ConvertFrom-Json | Where-Object { $_.name -eq $tag }
+ if ($existingTag) {
+ Write-Host "Tag $tag already exists. Exiting."
+ exit 1
+ }
+
+ gh release view $tag --repo $(Build.Repository.Name)
+ if ($LASTEXITCODE -eq 0) {
+ Write-Host "Release ($tag) already exists. Exiting."
+ exit 1
+ }
+
+ Write-Host "##vso[task.setvariable variable=GH_RELEASE_TAG;]$tag"
+ exit 0
+ displayName: Check for existing GitHub release
+ env:
+ GH_TOKEN: $(GH_TOKEN)
+
+ - pwsh: |
+ if (Test-Path -Path release/_manifest) {
+ Remove-Item -Path release/_manifest -Recurse -Force
+ }
+ Write-Host "Release:"
+ Get-ChildItem -Recurse release/ | Select-Object -Property Length,FullName
+ displayName: Remove _manifest folder
+
+ - pwsh: |
+ $version = "${{ parameters.TagVersion }}"
+ $createArgs = @(
+ "$(GH_RELEASE_TAG)",
+ "--title", "$(GH_RELEASE_TAG)",
+ "--notes-file", "changelog/CHANGELOG.md",
+ "--repo", "$(Build.Repository.Name)"
+ )
+ if ($version -match "^0\." -or $version -match "-(alpha|beta|preview)") {
+ $createArgs += "--prerelease"
+ }
+ gh release create @createArgs
+ gh release upload $(GH_RELEASE_TAG) release/* --repo $(Build.Repository.Name)
+ displayName: Create GitHub Release and upload artifacts
+ env:
+ GH_TOKEN: $(GH_TOKEN)
\ No newline at end of file
diff --git a/eng/pipelines/templates/steps/publish-extension-storage.yml b/eng/pipelines/templates/steps/publish-extension-storage.yml
new file mode 100644
index 00000000000..dd2a17bc60a
--- /dev/null
+++ b/eng/pipelines/templates/steps/publish-extension-storage.yml
@@ -0,0 +1,37 @@
+parameters:
+ - name: PublishUploadLocations
+ type: string
+ - name: StorageContainerName
+ type: string
+ default: '`$web'
+
+steps:
+ - pwsh: |
+ if (Test-Path -Path release/_manifest) {
+ Remove-Item -Path release/_manifest -Recurse -Force
+ }
+ Write-Host "Release:"
+ Get-ChildItem -Recurse release/ | Select-Object -Property Length,FullName
+ displayName: Remove _manifest folder
+
+ - task: AzurePowerShell@5
+ displayName: Upload release to storage account
+ inputs:
+ azureSubscription: 'Azure SDK Artifacts'
+ azurePowerShellVersion: LatestVersion
+ pwsh: true
+ ScriptType: InlineScript
+ Inline: |
+ $uploadLocations = "${{ parameters.PublishUploadLocations }}" -split ';'
+
+ Get-ChildItem release/
+ foreach ($folder in $uploadLocations) {
+ Write-Host "Upload to ${{ parameters.StorageContainerName }}/azd/extensions/$folder"
+ azcopy copy "release/*" "$(publish-storage-location)/${{ parameters.StorageContainerName }}/azd/extensions/$folder" --overwrite=true
+ if ($LASTEXITCODE) {
+ Write-Error "Upload failed"
+ exit 1
+ }
+ }
+ env:
+ AZCOPY_AUTO_LOGIN_TYPE: 'PSCRED'
\ No newline at end of file
diff --git a/eng/pipelines/templates/steps/publish-extension.yml b/eng/pipelines/templates/steps/publish-extension.yml
deleted file mode 100644
index 8bf6cf942e2..00000000000
--- a/eng/pipelines/templates/steps/publish-extension.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-parameters:
- - name: PublishUploadLocations
- type: string
- - name: StorageContainerName
- type: string
- default: '`$web'
- - name: TagPrefix
- type: string
- - name: TagVersion
- type: string
- # When false (nightly), skip the GitHub release and only upload to storage.
- - name: CreateGitHubRelease
- type: boolean
- default: true
-
-steps:
- - ${{ if eq(parameters.CreateGitHubRelease, true) }}:
- # This step must run first because a duplicated tag means we don't need to
- # continue with any of the subsequent steps.
- - pwsh: |
- $tag = "${{ parameters.TagPrefix }}_${{ parameters.TagVersion}}"
- Write-Host "Release tag: $tag"
-
- # Check for tag using gh API
- $existingTag = gh api /repos/$(Build.Repository.Name)/tags | ConvertFrom-Json | Where-Object { $_.name -eq $tag }
- if ($existingTag) {
- Write-Host "Tag $tag already exists. Exiting."
- exit 1
- }
-
- gh release view $tag --repo $(Build.Repository.Name)
- if ($LASTEXITCODE -eq 0) {
- Write-Host "Release ($tag) already exists. Exiting."
- exit 1
- }
-
- Write-Host "##vso[task.setvariable variable=GH_RELEASE_TAG;]$tag"
-
- # Exit with 0 (otherwise $LASTEXITCODE will not be 0 and the pipeline
- # will fail)
- exit 0
- displayName: Check for existing GitHub release
- env:
- GH_TOKEN: $(azuresdk-github-pat)
-
- - pwsh: |
- Remove-Item -Path release/_manifest -Recurse -Force
- Write-Host "Release:"
- Get-ChildItem -Recurse release/ | Select-Object -Property Length,FullName
- displayName: Remove _manifest folder
-
- - ${{ if eq(parameters.CreateGitHubRelease, true) }}:
- - pwsh: |
- $version = "${{ parameters.TagVersion }}"
- $createArgs = @(
- "$(GH_RELEASE_TAG)",
- "--title", "$(GH_RELEASE_TAG)",
- "--notes-file", "changelog/CHANGELOG.md",
- "--repo", "$(Build.Repository.Name)"
- )
-
- if ($version -match "^0\." -or $version -match "-(alpha|beta|preview)") {
- $createArgs += "--prerelease"
- }
-
- gh release create @createArgs
-
- gh release upload $(GH_RELEASE_TAG) release/* --repo $(Build.Repository.Name)
- displayName: Create GitHub Release and upload artifacts
- env:
- GH_TOKEN: $(azuresdk-github-pat)
-
- - task: AzurePowerShell@5
- displayName: Upload release to storage account
- inputs:
- azureSubscription: 'Azure SDK Artifacts'
- azurePowerShellVersion: LatestVersion
- pwsh: true
- ScriptType: InlineScript
- Inline: |
- $uploadLocations = "${{ parameters.PublishUploadLocations }}" -split ';'
-
- Get-ChildItem release/
- foreach ($folder in $uploadLocations) {
- Write-Host "Upload to ${{ parameters.StorageContainerName }}/azd/extensions/$folder"
- azcopy copy "release/*" "$(publish-storage-location)/${{ parameters.StorageContainerName }}/azd/extensions/$folder" --overwrite=true
- if ($LASTEXITCODE) {
- Write-Error "Upload failed"
- exit 1
- }
- }
- env:
- AZCOPY_AUTO_LOGIN_TYPE: 'PSCRED'
diff --git a/eng/pipelines/templates/steps/update-prcomment.yml b/eng/pipelines/templates/steps/update-prcomment.yml
index bfc71810d38..f4c5e728424 100644
--- a/eng/pipelines/templates/steps/update-prcomment.yml
+++ b/eng/pipelines/templates/steps/update-prcomment.yml
@@ -13,7 +13,7 @@ parameters:
default: ''
- name: GitHubToken
type: string
- default: $(azuresdk-github-pat)
+ default: $(GH_TOKEN)
steps:
- pwsh: |