diff --git a/eng/pipelines/release-cli.yml b/eng/pipelines/release-cli.yml index f59961e9746..26bd5b22891 100644 --- a/eng/pipelines/release-cli.yml +++ b/eng/pipelines/release-cli.yml @@ -1,3 +1,12 @@ +parameters: + - name: AzureRecordMode + displayName: Azure Record Mode + type: string + default: live + values: + - playback + - live + # Continuous deployment trigger trigger: branches: @@ -33,6 +42,12 @@ extends: stages: - template: /eng/pipelines/templates/stages/build-and-test.yml parameters: + # Scheduled and manual runs use 'live' mode by default for validation against real Azure resources. + # CI runs (push/PR) use 'playback' mode. Manual runs can override via the AzureRecordMode parameter. + ${{ if in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'PullRequest') }}: + AzureRecordMode: playback + ${{ else }}: + AzureRecordMode: ${{ parameters.AzureRecordMode }} BuildMatrix: Windows: Pool: $(WINDOWSPOOL) diff --git a/eng/pipelines/templates/jobs/build-cli.yml b/eng/pipelines/templates/jobs/build-cli.yml index 30a1a478c4d..031764da646 100644 --- a/eng/pipelines/templates/jobs/build-cli.yml +++ b/eng/pipelines/templates/jobs/build-cli.yml @@ -16,6 +16,9 @@ parameters: - name: UploadArtifact type: boolean default: true + - name: AzureRecordMode + type: string + default: playback - name: ghCopilotClientId type: string - name: ghCopilotIntegrationId @@ -150,7 +153,7 @@ jobs: AZD_TEST_TENANT_ID: $(AzureSubscriptionTenantId) AZD_TEST_AZURE_SUBSCRIPTION_ID: $(SubscriptionId) AZD_TEST_AZURE_LOCATION: eastus2 - AZURE_RECORD_MODE: playback # Always run in 'playback' mode during CI builds + AZURE_RECORD_MODE: ${{ parameters.AzureRecordMode }} # Defaults to 'playback'; controlled by AzureRecordMode parameter # AZD Live Test: Terraform authentication via `az` ARM_USE_CLI: true # Code Coverage: Generate junit report to publish results diff --git a/eng/pipelines/templates/stages/build-and-test.yml b/eng/pipelines/templates/stages/build-and-test.yml index d64697ea4fe..40d47ea00cd 100644 --- a/eng/pipelines/templates/stages/build-and-test.yml +++ b/eng/pipelines/templates/stages/build-and-test.yml @@ -1,4 +1,7 @@ parameters: + - name: AzureRecordMode + type: string + default: playback - name: BuildMatrix type: object - name: CrossBuildMatrix @@ -79,6 +82,7 @@ stages: OS: ${{ build.value.OS }} UploadArtifact: ${{ build.value.UploadArtifact}} Variables: ${{ build.value.Variables }} + AzureRecordMode: ${{ parameters.AzureRecordMode }} ghCopilotClientId: ${{ build.value.GhCopilotClientId }} ghCopilotIntegrationId: ${{ build.value.GhCopilotIntegrationId }}