diff --git a/eng/pipelines/templates/jobs/archetype-sdk-client.yml b/eng/pipelines/templates/jobs/archetype-sdk-client.yml index 1a0e7feec..aedd53cf7 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-client.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-client.yml @@ -29,6 +29,9 @@ parameters: - name: BranchCoverageTarget type: number default: 70 + - name: TestEnv + type: object + default: [] jobs: - template: /eng/common/pipelines/templates/jobs/archetype-sdk-tests-generate.yml @@ -49,6 +52,7 @@ jobs: CoverageEnabled: ${{ parameters.CoverageEnabled }} LineCoverageTarget: ${{ parameters.LineCoverageTarget }} BranchCoverageTarget: ${{ parameters.BranchCoverageTarget }} + TestEnv: ${{ parameters.TestEnv }} # Disable build for cpp - client - ${{ if ne(parameters.ServiceDirectory, 'not-specified' )}}: diff --git a/eng/pipelines/templates/jobs/ci.tests.yml b/eng/pipelines/templates/jobs/ci.tests.yml index dbdaccfb1..9e6b3bd9c 100644 --- a/eng/pipelines/templates/jobs/ci.tests.yml +++ b/eng/pipelines/templates/jobs/ci.tests.yml @@ -28,8 +28,9 @@ parameters: - name: BranchCoverageTarget type: number default: 70 - - + - name: TestEnv + type: object + default: [] # Supplied by archetype-sdk-tests-generate.yml dynamic matrix generator - name: CloudConfig type: object @@ -66,20 +67,12 @@ jobs: value: "" - name: CmakeArgs value: "" +# Apply to all services running public pipeline - name: AZURE_TEST_MODE value: "PLAYBACK" -# Even on playblack, tests will require ENV VARS - - name: AZURE_KEYVAULT_URL - value: "https://non-real-account.vault.azure.net" - - name: AZURE_KEYVAULT_HSM_URL - value: "https://non-real-account.vault.azure.net" -# Tenant ID should use the uniqueID format for playback recordings - - name: AZURE_TENANT_ID - value: "33333333-3333-3333-3333-333333333333" - - name: AZURE_CLIENT_ID - value: "non-real-client" - - name: AZURE_CLIENT_SECRET - value: "non-real-secret" + - ${{ each testEnvVar in parameters.TestEnv }}: + - name: ${{ testEnvVar.Name }} + value: ${{ testEnvVar.Value }} steps: - template: /eng/common/pipelines/templates/steps/verify-agent-os.yml diff --git a/eng/pipelines/templates/stages/archetype-sdk-client.yml b/eng/pipelines/templates/stages/archetype-sdk-client.yml index f37870308..a2420804d 100644 --- a/eng/pipelines/templates/stages/archetype-sdk-client.yml +++ b/eng/pipelines/templates/stages/archetype-sdk-client.yml @@ -35,6 +35,9 @@ parameters: - name: BranchCoverageTarget type: number default: 70 +- name: TestEnv + type: object + default: [] stages: - stage: Build @@ -51,6 +54,7 @@ stages: BranchCoverageTarget: ${{ parameters.BranchCoverageTarget }} ${{ if eq(parameters.ServiceDirectory, 'template') }}: TestPipeline: true + TestEnv: ${{ parameters.TestEnv }} - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(parameters.LiveTestCtestRegex, '')) }}: - stage: LiveTest diff --git a/sdk/core/ci.yml b/sdk/core/ci.yml index 261bfcda8..81d5894c6 100644 --- a/sdk/core/ci.yml +++ b/sdk/core/ci.yml @@ -48,3 +48,28 @@ stages: - Name: azure-core Path: azure-core VcpkgPortName: azure-core-cpp +# Since Azure Core will run all service's tests, it requires all the expected env vars from services + TestEnv: +# Key Vault + - Name: AZURE_KEYVAULT_URL + Value: "https://non-real-account.vault.azure.net" + - Name: AZURE_KEYVAULT_HSM_URL + Value: "https://non-real-account.vault.azure.net" +# Key Vault & Identity + - Name: AZURE_TENANT_ID + Value: "33333333-3333-3333-3333-333333333333" + - Name: AZURE_CLIENT_ID + Value: "non-real-client" + - Name: AZURE_CLIENT_SECRET + Value: "non-real-secret" +# Storage + - Name: AAD_TENANT_ID + Value: "33333333-3333-3333-3333-333333333333" + - Name: AAD_CLIENT_ID + Value: "non-real-client" + - Name: AAD_CLIENT_SECRET + Value: "non-real-secret" + - Name: STANDARD_STORAGE_CONNECTION_STRING + Value: "DefaultEndpointsProtocol=https;AccountName=fake;AccountKey=X;EndpointSuffix=core.windows.net" + - Name: ADLS_GEN2_CONNECTION_STRING + Value: "DefaultEndpointsProtocol=https;AccountName=fake;AccountKey=X;EndpointSuffix=core.windows.net" diff --git a/sdk/identity/ci.yml b/sdk/identity/ci.yml index 510b2ed52..70086ba30 100644 --- a/sdk/identity/ci.yml +++ b/sdk/identity/ci.yml @@ -34,3 +34,11 @@ stages: - Name: azure-identity Path: azure-identity VcpkgPortName: azure-identity-cpp + TestEnv: + # Tenant ID should use the uniqueID format for playback recordings + - Name: AZURE_TENANT_ID + Value: "33333333-3333-3333-3333-333333333333" + - Name: AZURE_CLIENT_ID + Value: "non-real-client" + - Name: AZURE_CLIENT_SECRET + Value: "non-real-secret" diff --git a/sdk/keyvault/ci.yml b/sdk/keyvault/ci.yml index cfb74a8fe..7eaa120f9 100644 --- a/sdk/keyvault/ci.yml +++ b/sdk/keyvault/ci.yml @@ -42,3 +42,15 @@ stages: - Name: azure-security-keyvault-certificates Path: azure-security-keyvault-certificates VcpkgPortName: azure-security-keyvault-certificates-cpp + TestEnv: + - Name: AZURE_KEYVAULT_URL + Value: "https://non-real-account.vault.azure.net" + - Name: AZURE_KEYVAULT_HSM_URL + Value: "https://non-real-account.vault.azure.net" + # Tenant ID should use the uniqueID format for playback recordings + - Name: AZURE_TENANT_ID + Value: "33333333-3333-3333-3333-333333333333" + - Name: AZURE_CLIENT_ID + Value: "non-real-client" + - Name: AZURE_CLIENT_SECRET + Value: "non-real-secret"