Skip to content

Conversation

@danieljurek
Copy link
Member

See the ill-fated #6487 which got stuck in some partial state and was unable to merge.

@danieljurek danieljurek self-assigned this Jan 13, 2026
Copilot AI review requested due to automatic review settings January 13, 2026 23:45
@danieljurek danieljurek enabled auto-merge (squash) January 13, 2026 23:46
@danieljurek danieljurek merged commit 07f7c78 into main Jan 13, 2026
10 checks passed
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR sets up a complete Azure DevOps Extension Release Pipeline for the setupAzd task, enabling automated building, testing, signing, and publishing to the Azure DevOps marketplace.

Changes:

  • Added CI/CD pipeline configuration files for building, testing, signing, and publishing the Azure DevOps extension
  • Enhanced test suite with environment variable configuration and increased timeouts for better macOS compatibility
  • Created PowerShell scripts for packaging and testing the extension

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
ext/azuredevops/setupAzd/tests/_suite.ts Added environment variables to disable actual tool downloads during tests and increased timeouts for macOS
ext/azuredevops/ci-test.ps1 New script to run tests for the setupAzd extension
ext/azuredevops/ci-package.ps1 New script to build and package the Azure DevOps extension into a VSIX file
eng/pipelines/templates/stages/azuredevops-build-and-test.yml Stage template defining build matrix for Windows, Linux, and macOS
eng/pipelines/templates/stages/azuredevops-sign.yml Stage template for signing the VSIX extension package
eng/pipelines/templates/stages/azuredevops-publish-manual.yml Stage template for manually publishing signed extensions to the marketplace
eng/pipelines/templates/jobs/azuredevops-build.yml Job template implementing build, test, and package steps for each platform
eng/pipelines/release-azuredevops.yml Main pipeline orchestrating the complete release workflow
eng/pipelines/templates/stages/1es-redirect.yml Updated azure-sdk-build-tools reference to newer version
.vscode/cspell-devops-ext.txt Added TOOLSDIRECTORY to the spell-check dictionary

@@ -0,0 +1,2 @@
#!/usr/bin/env pwsh
npm --prefix $PSScriptRoot/setupAzd/ test
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The script does not check the exit code of the npm test command. While the default PowerShell behavior will fail the pipeline task if npm exits with a non-zero code, it's a best practice to explicitly check $LASTEXITCODE for consistency with the ci-package.ps1 script pattern. Consider adding error handling similar to ci-package.ps1.

Suggested change
npm --prefix $PSScriptRoot/setupAzd/ test
npm --prefix $PSScriptRoot/setupAzd/ test
if ($LASTEXITCODE -ne 0) {
Write-Error "npm test failed with exit code $LASTEXITCODE."
exit $LASTEXITCODE
}

Copilot uses AI. Check for mistakes.
environment: package-publish
pool:
name: azsdk-pool
image: ubuntu-24.04
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The image version 'ubuntu-24.04' is hard-coded here, whereas the vscode-publish-manual.yml uses '$(LINUXVMIMAGE)' from the image template variables. For consistency and easier maintenance, consider using the variable reference pattern instead of hard-coding the image version.

Suggested change
image: ubuntu-24.04
image: $(LINUXVMIMAGE)

Copilot uses AI. Check for mistakes.
- deployment: Publish_Release
environment: package-publish
pool:
name: azsdk-pool
Copy link

Copilot AI Jan 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pool name 'azsdk-pool' is hard-coded here, while other pipeline files use '$(LINUXPOOL)' from the globals template. For consistency and easier maintenance across the pipeline, consider using the variable reference '$(LINUXPOOL)' instead.

Suggested change
name: azsdk-pool
name: $(LINUXPOOL)

Copilot uses AI. Check for mistakes.
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.

3 participants