From 37bca10f81d516e3195ce5c7b472b661d5d2b588 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 20 Jan 2026 10:28:02 -0800 Subject: [PATCH 1/3] Add ability to test using ci-test.ps1 --- cli/azd/extensions/microsoft.azd.demo/ci-test.ps1 | 4 ++++ eng/pipelines/release-ext-azure-ai-agents.yml | 1 + eng/pipelines/release-ext-azure-ai-finetune.yml | 3 ++- eng/pipelines/release-ext-azure-coding-agent.yml | 1 + eng/pipelines/release-ext-microsoft-azd-ai-builder.yml | 1 + eng/pipelines/release-ext-microsoft-azd-concurx.yml | 1 + eng/pipelines/release-ext-microsoft-azd-extensions.yml | 1 + eng/pipelines/templates/jobs/build-azd-extension.yml | 10 +++++----- .../templates/stages/release-azd-extension.yml | 3 +++ 9 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 cli/azd/extensions/microsoft.azd.demo/ci-test.ps1 diff --git a/cli/azd/extensions/microsoft.azd.demo/ci-test.ps1 b/cli/azd/extensions/microsoft.azd.demo/ci-test.ps1 new file mode 100644 index 00000000000..db87a8a2ceb --- /dev/null +++ b/cli/azd/extensions/microsoft.azd.demo/ci-test.ps1 @@ -0,0 +1,4 @@ +Write-Host "Run test command(s) here..." + +# Exit 0 for success, nonzero exit for failure +exit 0 diff --git a/eng/pipelines/release-ext-azure-ai-agents.yml b/eng/pipelines/release-ext-azure-ai-agents.yml index a9b4cb12bcb..f33f7608a39 100644 --- a/eng/pipelines/release-ext-azure-ai-agents.yml +++ b/eng/pipelines/release-ext-azure-ai-agents.yml @@ -30,3 +30,4 @@ extends: AzdExtensionId: azure.ai.agents SanitizedExtensionId: azure-ai-agents AzdExtensionDirectory: cli/azd/extensions/azure.ai.agents + SkipTests: true diff --git a/eng/pipelines/release-ext-azure-ai-finetune.yml b/eng/pipelines/release-ext-azure-ai-finetune.yml index fd04e3b4270..4e76f0aba05 100644 --- a/eng/pipelines/release-ext-azure-ai-finetune.yml +++ b/eng/pipelines/release-ext-azure-ai-finetune.yml @@ -29,4 +29,5 @@ extends: parameters: AzdExtensionId: azure.ai.finetune SanitizedExtensionId: azure-ai-finetune - AzdExtensionDirectory: cli/azd/extensions/azure.ai.finetune \ No newline at end of file + AzdExtensionDirectory: cli/azd/extensions/azure.ai.finetune + SkipTests: true \ No newline at end of file diff --git a/eng/pipelines/release-ext-azure-coding-agent.yml b/eng/pipelines/release-ext-azure-coding-agent.yml index 569e158d0af..b7f32f68ba9 100644 --- a/eng/pipelines/release-ext-azure-coding-agent.yml +++ b/eng/pipelines/release-ext-azure-coding-agent.yml @@ -29,3 +29,4 @@ extends: AzdExtensionId: azure.coding-agent SanitizedExtensionId: azure-coding-agent AzdExtensionDirectory: cli/azd/extensions/azure.coding-agent + SkipTests: true diff --git a/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml b/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml index 60029908318..7c9500d97d8 100644 --- a/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml +++ b/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml @@ -31,3 +31,4 @@ extends: AzdExtensionId: microsoft.azd.ai.builder SanitizedExtensionId: microsoft-azd-ai-builder AzdExtensionDirectory: cli/azd/extensions/microsoft.azd.ai.builder + SkipTests: true diff --git a/eng/pipelines/release-ext-microsoft-azd-concurx.yml b/eng/pipelines/release-ext-microsoft-azd-concurx.yml index a123079426e..359f3787a02 100644 --- a/eng/pipelines/release-ext-microsoft-azd-concurx.yml +++ b/eng/pipelines/release-ext-microsoft-azd-concurx.yml @@ -29,3 +29,4 @@ extends: AzdExtensionId: microsoft.azd.concurx SanitizedExtensionId: microsoft-azd-concurx AzdExtensionDirectory: cli/azd/extensions/microsoft.azd.concurx + SkipTests: true diff --git a/eng/pipelines/release-ext-microsoft-azd-extensions.yml b/eng/pipelines/release-ext-microsoft-azd-extensions.yml index ff4a7a6f44f..168c5504da9 100644 --- a/eng/pipelines/release-ext-microsoft-azd-extensions.yml +++ b/eng/pipelines/release-ext-microsoft-azd-extensions.yml @@ -29,3 +29,4 @@ extends: AzdExtensionId: microsoft.azd.extensions SanitizedExtensionId: microsoft-azd-extensions AzdExtensionDirectory: cli/azd/extensions/microsoft.azd.extensions + SkipTests: true diff --git a/eng/pipelines/templates/jobs/build-azd-extension.yml b/eng/pipelines/templates/jobs/build-azd-extension.yml index 95dbd72ef83..7b6f881ab53 100644 --- a/eng/pipelines/templates/jobs/build-azd-extension.yml +++ b/eng/pipelines/templates/jobs/build-azd-extension.yml @@ -36,8 +36,6 @@ jobs: - checkout: self - template: /eng/pipelines/templates/steps/setup-go.yml - parameters: - Condition: and(succeeded(), ne(variables['Skip.LiveTest'], 'true')) - task: PowerShell@2 inputs: @@ -61,10 +59,12 @@ jobs: workingDirectory: ${{ parameters.AzdExtensionDirectory }} displayName: Build Go Binary (for tests) - - pwsh: Write-Host "Tests would run here..." - condition: and(succeeded(), ne(variables['Skip.LiveTest'], 'true')) - workingDirectory: ${{ parameters.AzdExtensionDirectory }} + - task: PowerShell@2 displayName: Run tests + inputs: + pwsh: true + targetType: filePath + filePath: ${{ parameters.AzdExtensionDirectory }}/ci-test.ps1 - task: PublishTestResults@2 inputs: diff --git a/eng/pipelines/templates/stages/release-azd-extension.yml b/eng/pipelines/templates/stages/release-azd-extension.yml index 4877dbed2cb..4dce9ecffbc 100644 --- a/eng/pipelines/templates/stages/release-azd-extension.yml +++ b/eng/pipelines/templates/stages/release-azd-extension.yml @@ -5,6 +5,9 @@ parameters: type: string - name: SanitizedExtensionId type: string + - name: SkipTests + type: boolean + default: false stages: - template: /eng/pipelines/templates/stages/build-and-test-azd-extension.yml From 4bd4feea894ac0242b7ca3fed8211d20abfd41b4 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 20 Jan 2026 10:39:20 -0800 Subject: [PATCH 2/3] Wire up SkipTests --- .../templates/jobs/build-azd-extension.yml | 62 ++++++++++--------- .../stages/build-and-test-azd-extension.yml | 4 ++ .../stages/release-azd-extension.yml | 1 + 3 files changed, 38 insertions(+), 29 deletions(-) diff --git a/eng/pipelines/templates/jobs/build-azd-extension.yml b/eng/pipelines/templates/jobs/build-azd-extension.yml index 7b6f881ab53..36d23a229e1 100644 --- a/eng/pipelines/templates/jobs/build-azd-extension.yml +++ b/eng/pipelines/templates/jobs/build-azd-extension.yml @@ -18,6 +18,9 @@ parameters: default: true - name: AzdExtensionDirectory type: string + - name: SkipTests + type: boolean + default: false jobs: - job: BuildExtension_${{ parameters.NameSuffix }} @@ -44,37 +47,38 @@ jobs: filePath: eng/scripts/Set-ExtensionVersionVariable.ps1 arguments: >- -ExtensionDirectory ${{ parameters.AzdExtensionDirectory }} + + - ${{ if not(parameters.SkipTests) }}: + - task: PowerShell@2 + inputs: + pwsh: true + targetType: filePath + filePath: ${{ parameters.AzdExtensionDirectory }}/ci-build.ps1 + arguments: >- + -OutputFileName $(BuildTarget) + -Version $(EXT_VERSION) + -SourceVersion $(Build.SourceVersion) + -CodeCoverageEnabled + -BuildRecordMode + workingDirectory: ${{ parameters.AzdExtensionDirectory }} + displayName: Build Go Binary (for tests) - - task: PowerShell@2 - inputs: - pwsh: true - targetType: filePath - filePath: ${{ parameters.AzdExtensionDirectory }}/ci-build.ps1 - arguments: >- - -OutputFileName $(BuildTarget) - -Version $(EXT_VERSION) - -SourceVersion $(Build.SourceVersion) - -CodeCoverageEnabled - -BuildRecordMode - workingDirectory: ${{ parameters.AzdExtensionDirectory }} - displayName: Build Go Binary (for tests) - - - task: PowerShell@2 - displayName: Run tests - inputs: - pwsh: true - targetType: filePath - filePath: ${{ parameters.AzdExtensionDirectory }}/ci-test.ps1 + - task: PowerShell@2 + displayName: Run tests + inputs: + pwsh: true + targetType: filePath + filePath: ${{ parameters.AzdExtensionDirectory }}/ci-test.ps1 - - task: PublishTestResults@2 - inputs: - testResultsFormat: JUnit - testResultsFiles: "**/junitTestReport.xml" - testRunTitle: $(Agent.JobName) - searchFolder: ${{ parameters.AzdExtensionDirectory }} - publishRunAttachments: true - displayName: Publish test results - condition: succeededOrFailed() + - task: PublishTestResults@2 + inputs: + testResultsFormat: JUnit + testResultsFiles: "**/junitTestReport.xml" + testRunTitle: $(Agent.JobName) + searchFolder: ${{ parameters.AzdExtensionDirectory }} + publishRunAttachments: true + displayName: Publish test results + condition: succeededOrFailed() - task: PowerShell@2 inputs: diff --git a/eng/pipelines/templates/stages/build-and-test-azd-extension.yml b/eng/pipelines/templates/stages/build-and-test-azd-extension.yml index da2702e73d7..703f6e822e0 100644 --- a/eng/pipelines/templates/stages/build-and-test-azd-extension.yml +++ b/eng/pipelines/templates/stages/build-and-test-azd-extension.yml @@ -5,6 +5,9 @@ parameters: type: string - name: AzdExtensionDirectory type: string + - name: SkipTests + type: boolean + default: false - name: CrossBuildMatrix type: object default: @@ -81,6 +84,7 @@ stages: UploadArtifact: ${{ build.value.UploadArtifact}} Variables: ${{ build.value.Variables }} AzdExtensionDirectory: ${{ parameters.AzdExtensionDirectory }} + SkipTests: ${{ parameters.SkipTests }} - ${{ each build in parameters.CrossBuildMatrix }}: - template: /eng/pipelines/templates/jobs/cross-build-azd-extension.yml diff --git a/eng/pipelines/templates/stages/release-azd-extension.yml b/eng/pipelines/templates/stages/release-azd-extension.yml index 4dce9ecffbc..11442c20342 100644 --- a/eng/pipelines/templates/stages/release-azd-extension.yml +++ b/eng/pipelines/templates/stages/release-azd-extension.yml @@ -14,6 +14,7 @@ stages: parameters: AzdExtensionId: ${{ parameters.AzdExtensionId }} AzdExtensionDirectory: ${{ parameters.AzdExtensionDirectory }} + SkipTests: ${{ parameters.SkipTests }} BuildMatrix: Windows: Pool: $(WINDOWSPOOL) From 2efd55ae5d2422a7b0e8c4986aca344ff7530fd3 Mon Sep 17 00:00:00 2001 From: Daniel Jurek Date: Tue, 20 Jan 2026 10:45:09 -0800 Subject: [PATCH 3/3] Build when release yaml is altered --- eng/pipelines/release-ext-azure-ai-agents.yml | 1 + eng/pipelines/release-ext-azure-ai-finetune.yml | 1 + eng/pipelines/release-ext-azure-coding-agent.yml | 1 + eng/pipelines/release-ext-microsoft-azd-ai-builder.yml | 1 + eng/pipelines/release-ext-microsoft-azd-concurx.yml | 1 + eng/pipelines/release-ext-microsoft-azd-demo.yml | 1 + eng/pipelines/release-ext-microsoft-azd-extensions.yml | 1 + 7 files changed, 7 insertions(+) diff --git a/eng/pipelines/release-ext-azure-ai-agents.yml b/eng/pipelines/release-ext-azure-ai-agents.yml index f33f7608a39..e7d75fee630 100644 --- a/eng/pipelines/release-ext-azure-ai-agents.yml +++ b/eng/pipelines/release-ext-azure-ai-agents.yml @@ -16,6 +16,7 @@ pr: paths: include: - cli/azd/extensions/azure.ai.agents + - eng/pipelines/release-ext-azure-ai-agents.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: diff --git a/eng/pipelines/release-ext-azure-ai-finetune.yml b/eng/pipelines/release-ext-azure-ai-finetune.yml index 4e76f0aba05..e0dab565cfe 100644 --- a/eng/pipelines/release-ext-azure-ai-finetune.yml +++ b/eng/pipelines/release-ext-azure-ai-finetune.yml @@ -16,6 +16,7 @@ pr: paths: include: - cli/azd/extensions/azure.ai.finetune + - eng/pipelines/release-ext-azure-ai-finetune.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: diff --git a/eng/pipelines/release-ext-azure-coding-agent.yml b/eng/pipelines/release-ext-azure-coding-agent.yml index b7f32f68ba9..24d1ad7d57f 100644 --- a/eng/pipelines/release-ext-azure-coding-agent.yml +++ b/eng/pipelines/release-ext-azure-coding-agent.yml @@ -15,6 +15,7 @@ pr: paths: include: - cli/azd/extensions/azure.coding-agent + - eng/pipelines/release-ext-azure-coding-agent.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: diff --git a/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml b/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml index 7c9500d97d8..c1d282c44c8 100644 --- a/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml +++ b/eng/pipelines/release-ext-microsoft-azd-ai-builder.yml @@ -17,6 +17,7 @@ pr: include: - go.mod - cli/azd/extensions/microsoft.azd.ai.builder + - eng/pipelines/release-ext-microsoft-azd-ai-builder.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: diff --git a/eng/pipelines/release-ext-microsoft-azd-concurx.yml b/eng/pipelines/release-ext-microsoft-azd-concurx.yml index 359f3787a02..2fdcd72a118 100644 --- a/eng/pipelines/release-ext-microsoft-azd-concurx.yml +++ b/eng/pipelines/release-ext-microsoft-azd-concurx.yml @@ -15,6 +15,7 @@ pr: paths: include: - cli/azd/extensions/microsoft.azd.concurx + - eng/pipelines/release-ext-microsoft-azd-concurx.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: diff --git a/eng/pipelines/release-ext-microsoft-azd-demo.yml b/eng/pipelines/release-ext-microsoft-azd-demo.yml index 3cc9149b345..a5995f1602e 100644 --- a/eng/pipelines/release-ext-microsoft-azd-demo.yml +++ b/eng/pipelines/release-ext-microsoft-azd-demo.yml @@ -17,6 +17,7 @@ pr: include: - go.mod - cli/azd/extensions/microsoft.azd.demo + - eng/pipelines/release-ext-microsoft-azd-demo.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: diff --git a/eng/pipelines/release-ext-microsoft-azd-extensions.yml b/eng/pipelines/release-ext-microsoft-azd-extensions.yml index 168c5504da9..21c575274b7 100644 --- a/eng/pipelines/release-ext-microsoft-azd-extensions.yml +++ b/eng/pipelines/release-ext-microsoft-azd-extensions.yml @@ -15,6 +15,7 @@ pr: paths: include: - cli/azd/extensions/microsoft.azd.extensions + - eng/pipelines/release-ext-microsoft-azd-extensions.yml - eng/pipelines/release-azd-extension.yml - eng/pipelines/templates/steps/publish-cli.yml exclude: