From 803dd90c99642d63582bf59ed1f80fdc7c54c413 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 11:07:28 -0700 Subject: [PATCH 01/12] Enable validation in CI --- .../Azure.Provisioning.AppConfiguration/assets.json | 2 +- .../Azure.Provisioning/tests/ProvisioningTestBase.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/provisioning/Azure.Provisioning.AppConfiguration/assets.json b/sdk/provisioning/Azure.Provisioning.AppConfiguration/assets.json index e3f4df5312cb..2828777cee70 100644 --- a/sdk/provisioning/Azure.Provisioning.AppConfiguration/assets.json +++ b/sdk/provisioning/Azure.Provisioning.AppConfiguration/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/provisioning/Azure.Provisioning.AppConfiguration", - "Tag": "net/provisioning/Azure.Provisioning.AppConfiguration_3c7936e93e" + "Tag": "net/provisioning/Azure.Provisioning.AppConfiguration_55fde9399d" } diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index ae44e3ba1e3a..e769656d7683 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -44,7 +44,7 @@ protected async Task ValidateBicepAsync(BinaryData? parameters = null, bool inte "eng", "scripts", $"Validate-Bicep.ps1 {bicepPath}"); - var processInfo = new ProcessStartInfo("pwsh.exe", args) + var processInfo = new ProcessStartInfo("pwsh", args) { UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, }; From 2edb80863975024355de82725585fcb1c487f1bb Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 11:07:46 -0700 Subject: [PATCH 02/12] remove ci check --- .../Azure.Provisioning/tests/ProvisioningTestBase.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index e769656d7683..c781223cef4f 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -24,11 +24,6 @@ public ProvisioningTestBase(bool async) : base(async) protected async Task ValidateBicepAsync(BinaryData? parameters = null, bool interactiveMode = false) { - if (CoreTestEnvironment.GlobalIsRunningInCI) - { - return; - } - var testPath = GetOutputPath(); var client = GetArmClient(); ResourceGroupResource? rg = null; From 73c6538eee5619b27718baa6bc7a21dfabbd5ef3 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 11:39:23 -0700 Subject: [PATCH 03/12] ignore cli version --- .../Azure.Provisioning.KeyVault/assets.json | 2 +- .../Infrastructure/AddingOutputs/main.bicep | 6 ++-- .../Sample_HelloWorld/main.bicep | 4 +-- .../Infrastructure/UsingParameters/main.bicep | 4 +-- .../tests/ProvisioningTestBase.cs | 29 ++----------------- 5 files changed, 10 insertions(+), 35 deletions(-) diff --git a/sdk/provisioning/Azure.Provisioning.KeyVault/assets.json b/sdk/provisioning/Azure.Provisioning.KeyVault/assets.json index fd9293b8fee5..5fe6a9c00d53 100644 --- a/sdk/provisioning/Azure.Provisioning.KeyVault/assets.json +++ b/sdk/provisioning/Azure.Provisioning.KeyVault/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/provisioning/Azure.Provisioning.KeyVault", - "Tag": "net/provisioning/Azure.Provisioning.KeyVault_cb7a21a215" + "Tag": "net/provisioning/Azure.Provisioning.KeyVault_7cbe7ccb75" } \ No newline at end of file diff --git a/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/AddingOutputs/main.bicep b/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/AddingOutputs/main.bicep index c985be0e51db..e68f042d4e2d 100644 --- a/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/AddingOutputs/main.bicep +++ b/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/AddingOutputs/main.bicep @@ -7,11 +7,11 @@ param location string = resourceGroup().location param enableSoftDelete bool = true -resource keyVault_7LloDNJK5 'Microsoft.KeyVault/vaults@2022-07-01' = { +resource keyVault_NEuaN7OeP 'Microsoft.KeyVault/vaults@2022-07-01' = { name: toLower(take('kv${uniqueString(resourceGroup().id)}', 24)) location: location properties: { - tenantId: '00000000-0000-0000-0000-000000000000' + tenantId: tenant().tenantId sku: { family: 'A' name: 'standard' @@ -21,4 +21,4 @@ resource keyVault_7LloDNJK5 'Microsoft.KeyVault/vaults@2022-07-01' = { } } -output VAULT_URI string = keyVault_7LloDNJK5.properties.vaultUri +output VAULT_URI string = keyVault_NEuaN7OeP.properties.vaultUri diff --git a/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/Sample_HelloWorld/main.bicep b/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/Sample_HelloWorld/main.bicep index 7cdc3b22636b..ffc8366edcd9 100644 --- a/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/Sample_HelloWorld/main.bicep +++ b/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/Sample_HelloWorld/main.bicep @@ -4,11 +4,11 @@ targetScope = 'resourceGroup' param location string = resourceGroup().location -resource keyVault_7LloDNJK5 'Microsoft.KeyVault/vaults@2022-07-01' = { +resource keyVault_NEuaN7OeP 'Microsoft.KeyVault/vaults@2022-07-01' = { name: toLower(take('kv${uniqueString(resourceGroup().id)}', 24)) location: location properties: { - tenantId: '00000000-0000-0000-0000-000000000000' + tenantId: tenant().tenantId sku: { family: 'A' name: 'standard' diff --git a/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/UsingParameters/main.bicep b/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/UsingParameters/main.bicep index bf85cff53d60..f61af2bf4dad 100644 --- a/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/UsingParameters/main.bicep +++ b/sdk/provisioning/Azure.Provisioning.KeyVault/tests/Infrastructure/UsingParameters/main.bicep @@ -7,11 +7,11 @@ param location string = resourceGroup().location param enableSoftDelete bool = true -resource keyVault_7LloDNJK5 'Microsoft.KeyVault/vaults@2022-07-01' = { +resource keyVault_NEuaN7OeP 'Microsoft.KeyVault/vaults@2022-07-01' = { name: toLower(take('kv${uniqueString(resourceGroup().id)}', 24)) location: location properties: { - tenantId: '00000000-0000-0000-0000-000000000000' + tenantId: tenant().tenantId sku: { family: 'A' name: 'standard' diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index c781223cef4f..696bc6ec1d55 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -20,6 +20,8 @@ public class ProvisioningTestBase : ManagementRecordedTestBase Date: Thu, 9 May 2024 11:48:23 -0700 Subject: [PATCH 04/12] templateHash --- .../Azure.Provisioning/tests/ProvisioningTestBase.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index 696bc6ec1d55..7b494167a089 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -22,6 +22,7 @@ public ProvisioningTestBase(bool async) : base(async) { // Ignore the version of the AZ CLI used to generate the ARM template as this will differ based on the environment JsonPathSanitizers.Add("$.._generator.version"); + JsonPathSanitizers.Add("$.._generator.templateHash"); } protected async Task ValidateBicepAsync(BinaryData? parameters = null, bool interactiveMode = false) From 2d23541d353f192ee2a8e7126bfcd3aaaa28bcdf Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 12:04:44 -0700 Subject: [PATCH 05/12] re-record storage and signalr --- sdk/provisioning/Azure.Provisioning.SignalR/assets.json | 2 +- sdk/provisioning/Azure.Provisioning.Storage/assets.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/provisioning/Azure.Provisioning.SignalR/assets.json b/sdk/provisioning/Azure.Provisioning.SignalR/assets.json index d4ca065f396b..9f46d7ce83e8 100644 --- a/sdk/provisioning/Azure.Provisioning.SignalR/assets.json +++ b/sdk/provisioning/Azure.Provisioning.SignalR/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/provisioning/Azure.Provisioning.SignalR", - "Tag": "" + "Tag": "net/provisioning/Azure.Provisioning.SignalR_a88305db5e" } \ No newline at end of file diff --git a/sdk/provisioning/Azure.Provisioning.Storage/assets.json b/sdk/provisioning/Azure.Provisioning.Storage/assets.json index 65ae1ebda2e0..a41e36aa7f7c 100644 --- a/sdk/provisioning/Azure.Provisioning.Storage/assets.json +++ b/sdk/provisioning/Azure.Provisioning.Storage/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/provisioning/Azure.Provisioning.Storage", - "Tag": "net/provisioning/Azure.Provisioning.Storage_bcaeab9180" + "Tag": "net/provisioning/Azure.Provisioning.Storage_13a772dbd6" } \ No newline at end of file From 48cdd6dcd3a31b772c63182f1a51032e4f0f5e05 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 12:47:16 -0700 Subject: [PATCH 06/12] Fix bug in search model factory --- .../tests/Infrastructure/SearchResources/main.bicep | 1 + .../src/Customization/ArmSearchModelFactory.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep b/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep index 8ded24d68641..3a48f7554c0a 100644 --- a/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep +++ b/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep @@ -14,6 +14,7 @@ resource searchService_xRr8B27eB 'Microsoft.Search/searchServices@2023-11-01' = replicaCount: 1 partitionCount: 1 hostingMode: 'default' + publicNetworkAccess: '' disableLocalAuth: true } } diff --git a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs index 58689b403d3f..bdb476c8bace 100644 --- a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs +++ b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs @@ -47,7 +47,7 @@ public static SearchServiceData SearchServiceData(ResourceIdentifier id = null, systemData, tags, location, - skuName.ToString(), + skuName?.ToSerialString(), identity, replicaCount, partitionCount, From ae5e5bc4e584c67158842154b161a0a747c159a9 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 13:24:52 -0700 Subject: [PATCH 07/12] Search --- sdk/provisioning/Azure.Provisioning.Search/assets.json | 2 +- .../tests/Infrastructure/SearchResources/main.bicep | 1 - .../Azure.Provisioning/tests/ProvisioningTestBase.cs | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/sdk/provisioning/Azure.Provisioning.Search/assets.json b/sdk/provisioning/Azure.Provisioning.Search/assets.json index f8e83ac2077d..491bc8c899db 100644 --- a/sdk/provisioning/Azure.Provisioning.Search/assets.json +++ b/sdk/provisioning/Azure.Provisioning.Search/assets.json @@ -2,5 +2,5 @@ "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "net", "TagPrefix": "net/provisioning/Azure.Provisioning.Search", - "Tag": "net/provisioning/Azure.Provisioning.Search_0f74a99f10" + "Tag": "net/provisioning/Azure.Provisioning.Search_3d009da219" } \ No newline at end of file diff --git a/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep b/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep index 3a48f7554c0a..8ded24d68641 100644 --- a/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep +++ b/sdk/provisioning/Azure.Provisioning.Search/tests/Infrastructure/SearchResources/main.bicep @@ -14,7 +14,6 @@ resource searchService_xRr8B27eB 'Microsoft.Search/searchServices@2023-11-01' = replicaCount: 1 partitionCount: 1 hostingMode: 'default' - publicNetworkAccess: '' disableLocalAuth: true } } diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index 7b494167a089..3fb3ed0cdcf9 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -18,7 +18,7 @@ namespace Azure.Provisioning.Tests [AsyncOnly] public class ProvisioningTestBase : ManagementRecordedTestBase { - public ProvisioningTestBase(bool async) : base(async) + public ProvisioningTestBase(bool async) : base(async, RecordedTestMode.Record) { // Ignore the version of the AZ CLI used to generate the ARM template as this will differ based on the environment JsonPathSanitizers.Add("$.._generator.version"); From effe0cb1b90731ebdd20a1bd79aea92e633c559b Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 13:35:48 -0700 Subject: [PATCH 08/12] mode --- .../Azure.Provisioning/tests/ProvisioningTestBase.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index 3fb3ed0cdcf9..7b494167a089 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -18,7 +18,7 @@ namespace Azure.Provisioning.Tests [AsyncOnly] public class ProvisioningTestBase : ManagementRecordedTestBase { - public ProvisioningTestBase(bool async) : base(async, RecordedTestMode.Record) + public ProvisioningTestBase(bool async) : base(async) { // Ignore the version of the AZ CLI used to generate the ARM template as this will differ based on the environment JsonPathSanitizers.Add("$.._generator.version"); From 7924b5abb7a2539fa77fc33360f0d7fc92b1e71e Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 14:02:52 -0700 Subject: [PATCH 09/12] public network access --- .../src/Customization/ArmSearchModelFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs index bdb476c8bace..2d86d55dba24 100644 --- a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs +++ b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs @@ -52,7 +52,7 @@ public static SearchServiceData SearchServiceData(ResourceIdentifier id = null, replicaCount, partitionCount, hostingMode, - publicNetworkAccess.ToString(), + publicNetworkAccess?.ToSerialString(), status, statusDetails, provisioningState, From a06887c4c646dc0daac55df6603e81afacbc7a44 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 15:43:39 -0700 Subject: [PATCH 10/12] fix --- .../src/Customization/ArmSearchModelFactory.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs index 2d86d55dba24..e5539982b5f1 100644 --- a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs +++ b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs @@ -52,7 +52,8 @@ public static SearchServiceData SearchServiceData(ResourceIdentifier id = null, replicaCount, partitionCount, hostingMode, - publicNetworkAccess?.ToSerialString(), + // need the explicit HasValue check to avoid passing null to implicit cast operation + publicNetworkAccess.HasValue ? publicNetworkAccess.Value.ToSerialString() : null, status, statusDetails, provisioningState, From 0216507eb822e6f6b78a7a4da66ccedb2f15b7a1 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 17:04:08 -0700 Subject: [PATCH 11/12] Fix nullability used in ternary --- .../src/Customization/ArmSearchModelFactory.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs index e5539982b5f1..3e4cb4020038 100644 --- a/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs +++ b/sdk/search/Azure.ResourceManager.Search/src/Customization/ArmSearchModelFactory.cs @@ -47,13 +47,14 @@ public static SearchServiceData SearchServiceData(ResourceIdentifier id = null, systemData, tags, location, - skuName?.ToSerialString(), + // ternary operator must use a nullable instance of the type to avoid triggering the implicit cast on the null + skuName.HasValue ? new SearchServiceSkuName?(skuName.Value.ToSerialString()) : null, identity, replicaCount, partitionCount, hostingMode, - // need the explicit HasValue check to avoid passing null to implicit cast operation - publicNetworkAccess.HasValue ? publicNetworkAccess.Value.ToSerialString() : null, + // ternary operator must use a nullable instance of the type to avoid triggering the implicit cast on the null + publicNetworkAccess.HasValue ? new SearchServicePublicInternetAccess?(publicNetworkAccess.Value.ToSerialString()) : null, status, statusDetails, provisioningState, From ce5617dc0835530824c9b605958ebcee069a2845 Mon Sep 17 00:00:00 2001 From: jolov Date: Thu, 9 May 2024 20:25:41 -0700 Subject: [PATCH 12/12] override start time to exclude bicep build --- .../Azure.Provisioning/tests/ProvisioningTestBase.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs index 7b494167a089..e296db9e6731 100644 --- a/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs +++ b/sdk/provisioning/Azure.Provisioning/tests/ProvisioningTestBase.cs @@ -18,6 +18,9 @@ namespace Azure.Provisioning.Tests [AsyncOnly] public class ProvisioningTestBase : ManagementRecordedTestBase { + private DateTime _testStartTime; + protected override DateTime TestStartTime => _testStartTime; + public ProvisioningTestBase(bool async) : base(async) { // Ignore the version of the AZ CLI used to generate the ARM template as this will differ based on the environment @@ -25,6 +28,12 @@ public ProvisioningTestBase(bool async) : base(async) JsonPathSanitizers.Add("$.._generator.templateHash"); } + [SetUp] + public void Setup() + { + _testStartTime = base.TestStartTime; + } + protected async Task ValidateBicepAsync(BinaryData? parameters = null, bool interactiveMode = false) { var testPath = GetOutputPath(); @@ -57,6 +66,9 @@ protected async Task ValidateBicepAsync(BinaryData? parameters = null, bool inte } } + // exclude the time taken to validate the bicep file + _testStartTime = DateTime.UtcNow; + ResourceIdentifier scope; if (interactiveMode) {