Skip to content

Commit

Permalink
[Rollout] Production rollout 2024-06-25 (#3675)
Browse files Browse the repository at this point in the history
  • Loading branch information
oleksandr-didyk authored Jun 25, 2024
2 parents f40c80e + a37f796 commit 751d1ba
Show file tree
Hide file tree
Showing 88 changed files with 822 additions and 578 deletions.
4 changes: 2 additions & 2 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"microsoft.dnceng.secretmanager": {
"version": "1.1.0-beta.24313.1",
"version": "1.1.0-beta.24321.4",
"commands": [
"secret-manager"
]
Expand All @@ -15,7 +15,7 @@
]
},
"microsoft.dnceng.configuration.bootstrap": {
"version": "1.1.0-beta.24313.1",
"version": "1.1.0-beta.24321.4",
"commands": [
"bootstrap-dnceng-configuration"
]
Expand Down
13 changes: 0 additions & 13 deletions .github/ISSUE_TEMPLATE/issue-with-release-notes.md

This file was deleted.

33 changes: 16 additions & 17 deletions .github/ISSUE_TEMPLATE/rollout-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,33 +13,32 @@ This issue tracks the `arcade-services` repository rollout. On top of the [Rollo

# Process

## Build status check (Monday)
## Build status check
- [ ] Check the status of the [dotnet-arcade-services-weekly](https://dev.azure.com/dnceng/internal/_build?definitionId=993) pipeline
- [ ] Rotate any secrets that need manual rotation
- [ ] Check the status of the [arcade-services-internal-ci](https://dev.azure.com/dnceng/internal/_build?definitionId=252) pipeline. Try to fix issues, if any, so that we have a green build before the rollout day.
- [ ] Check the `Rollout` column in the [Product Construction](https://github.com/orgs/dotnet/projects/276) board - move any issues rolled-out last week into `Done`

## Rollout preparation (Tuesday)
- [ ] Check that the vendor prepared the rollout:
- Thread on the [Rollout channel](https://teams.microsoft.com/l/channel/19%3a72e283b51f9e4567ba24a35328562df4%40thread.skype/Rollout?groupId=147df318-61de-4f04-8f7b-ecd328c256bb&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47)
- Rollout issue in [AzDO](https://dev.azure.com/dnceng/internal/_workitems/)
- Rollout PR in `arcade-services`
- [ ] In case there is a problem with the CI build, notify the [Rollout channel](https://teams.microsoft.com/l/channel/19%3a72e283b51f9e4567ba24a35328562df4%40thread.skype/Rollout?groupId=147df318-61de-4f04-8f7b-ecd328c256bb&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47)
## Rollout preparation
- [ ] Create the rollout PR:
- Find a commit on `main` that you want to rollout
- Create a branch named `rollout/YYYY-MM-DD` from that commit
- Create a PR on GitHub from the `rollout/YYYY-MM-DD` branch to `production`
- Name the PR `[Rollout] Production rollout YYYY-MM-DD`
- Link this issue in the PR description
- [ ] Link the rollout PR to the [Rollout PRs](#rollout-prs) section of this issue
- [ ] Double-check that the release notes contain all information
- [ ] Merge the already prepared rollout PR (⚠️ **DO NOT SQUASH**)
- [ ] Merge the prepared rollout PR (⚠️ **DO NOT SQUASH**)
- [ ] Link the rollout build to the [Rollout build](#rollout-build) section of this issue
- [ ] Verify that Maestro opened a production => main PR in `arcade-services` with the rollout merge commit ([example](https://github.com/dotnet/arcade-services/pull/2741)). There should be no changes in the PR to any files. **Do not merge the PR yet**.
- [ ] Verify that Maestro opened a `production => main` PR in `arcade-services` with the rollout merge commit ([example](https://github.com/dotnet/arcade-services/pull/2741)). There should be no changes in the PR to any files. **Do not merge the PR yet**.
- [ ] Ensure the build is green and stops at the `Approval` phase

## Rollout day (Wednesday)
- [ ] Approve the `Approval` stage of the rollout build (that has been already started the day before)
## Rollout
- [ ] Approve the `Approval` stage of the rollout build.
- [ ] Monitor the rollout build for failures.
- Note: this [Maestro exceptions query](https://ms.portal.azure.com/#view/Microsoft_OperationsManagementSuite_Workspace/Logs.ReactView/resourceId/%2Fsubscriptions%2F68672ab8-de0c-40f1-8d1b-ffb20bd62c0f%2FresourceGroups%2Fmaestro-prod-cluster%2Fproviders%2Fmicrosoft.insights%2Fcomponents%2Fmaestro-prod/source/LogsBlade.AnalyticsShareLinkToQuery/q/H4sIAAAAAAAAAz2MOw6DMBBE%252B5xiSlsiRZDS5i7GjGQXu0brRSSIwyekoH4fvjMXr0377cBWaIRXYfckC17QtoV4H%252Bcf7KtIsroTua3qIWL6YKoaLn%252FA4ylxgNBLOxOjzrT%252FMJdk%252FgV08ryabQAAAA%253D%253D) might help in diagnosing issues.
- [ ] Keep track of any issues encountered during the rollout either directly in this issue, or in a dedicated issue linked to this issue
- [ ] Update the rollout stats in the [Stats](#stats) section below. The statistics will be available in Kusto a few minutes after the build was finished
- [ ] Notify the [Rollout channel](https://teams.microsoft.com/l/channel/19%3a72e283b51f9e4567ba24a35328562df4%40thread.skype/Rollout?groupId=147df318-61de-4f04-8f7b-ecd328c256bb&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47)
- [ ] Merge the production => main Maestro PR in `arcade-services` (⚠️ **DO NOT SQUASH**)
- [ ] When finished, update the rollout stats in the [Stats](#stats) section below. The statistics will be available in Kusto a few minutes after the build was finished
- [ ] Merge the `production => main` PR in `arcade-services` (⚠️ **DO NOT SQUASH**)
- [ ] Move rolled-out issues in the `Rollout` column of the [Product Construction](https://github.com/orgs/dotnet/projects/276) board into `Done`. Add a link in to this rollout issue in the comments before closing them ([example](https://github.com/dotnet/arcade-services/issues/2681#issuecomment-1632288755))
- [ ] Close this issue with closing comment describing a high-level summary of issues encountered during the rollout
- In case of rollback, uncomment the *Rollback* section below and follow the steps there
Expand All @@ -64,11 +63,11 @@ In case the services don't work as expected after the rollout, it's necessary to

## Rollout PRs

* The main PR: `<TO BE FILLED>`
* The main PR: <TO BE FILLED>

## Rollout build

* Rollout AzDO build: `<TO BE FILLED>`
* Rollout AzDO build: <TO BE FILLED>

## Rollout times

Expand Down
17 changes: 1 addition & 16 deletions arcade-services.sln
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maestro.MergePolicies", "sr
EndProject
Project("{A07B5EB6-E848-4116-A8D0-A826331D98C6}") = "MaestroApplication", "src\Maestro\MaestroApplication\MaestroApplication.sfproj", "{93F066A5-A2D8-4926-A255-81077AEE5972}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maestro.AzureDevOps", "src\Maestro\Maestro.AzureDevOps\Maestro.AzureDevOps.csproj", "{423EDB52-F832-4AE9-B85F-7F427056940A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C9012867-A5A4-464F-A104-99A8D6C97DAF}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
Expand Down Expand Up @@ -118,7 +116,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maestro.Authentication", "s
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProductConstructionService.Client", "src\ProductConstructionService\ProductConstructionService.Client\ProductConstructionService.Client.csproj", "{964FA796-358E-48AE-B75C-E42132600BCC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maestro.Common", "src\Maestro\Maestro.Common\Maestro.Common.csproj", "{16F086DD-8387-44BB-87D5-CD804355A110}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Maestro.Common", "src\Maestro\Maestro.Common\Maestro.Common.csproj", "{16F086DD-8387-44BB-87D5-CD804355A110}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -226,18 +224,6 @@ Global
{93F066A5-A2D8-4926-A255-81077AEE5972}.Release|x64.Build.0 = Release|x64
{93F066A5-A2D8-4926-A255-81077AEE5972}.Release|x64.Deploy.0 = Release|x64
{93F066A5-A2D8-4926-A255-81077AEE5972}.Release|x86.ActiveCfg = Release|x64
{423EDB52-F832-4AE9-B85F-7F427056940A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Debug|x64.ActiveCfg = Debug|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Debug|x64.Build.0 = Debug|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Debug|x86.ActiveCfg = Debug|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Debug|x86.Build.0 = Debug|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Release|Any CPU.Build.0 = Release|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Release|x64.ActiveCfg = Release|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Release|x64.Build.0 = Release|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Release|x86.ActiveCfg = Release|Any CPU
{423EDB52-F832-4AE9-B85F-7F427056940A}.Release|x86.Build.0 = Release|Any CPU
{7D7E290E-7A94-4F7B-AA05-27156C4A3CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D7E290E-7A94-4F7B-AA05-27156C4A3CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D7E290E-7A94-4F7B-AA05-27156C4A3CAC}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -552,7 +538,6 @@ Global
{EDF632B3-48E2-43FD-B014-79CDED8F4240} = {AE791E26-78E1-4936-BCF4-1BF5152CBBD6}
{37D70EEA-9621-44EB-921A-5D303917F851} = {AE791E26-78E1-4936-BCF4-1BF5152CBBD6}
{93F066A5-A2D8-4926-A255-81077AEE5972} = {AE791E26-78E1-4936-BCF4-1BF5152CBBD6}
{423EDB52-F832-4AE9-B85F-7F427056940A} = {AE791E26-78E1-4936-BCF4-1BF5152CBBD6}
{939DD755-B5FC-46EF-AE8B-5073DA6D4490} = {F92E1B5C-26D4-4244-A4F9-41E22BA8E1CE}
{7D7E290E-7A94-4F7B-AA05-27156C4A3CAC} = {AE791E26-78E1-4936-BCF4-1BF5152CBBD6}
{C7E8C999-F8AE-427D-B748-6BCF7202B476} = {AE791E26-78E1-4936-BCF4-1BF5152CBBD6}
Expand Down
32 changes: 16 additions & 16 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,37 +91,37 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24311.3">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24324.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c214b6ad17aedca4fa48294d80f6c52ef2463081</Sha>
<Sha>748cd976bf8b0f69b809e569943635ab8be36dc8</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.24311.3">
<Dependency Name="Microsoft.DotNet.SignTool" Version="8.0.0-beta.24324.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c214b6ad17aedca4fa48294d80f6c52ef2463081</Sha>
<Sha>748cd976bf8b0f69b809e569943635ab8be36dc8</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.24311.3">
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="8.0.0-beta.24324.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c214b6ad17aedca4fa48294d80f6c52ef2463081</Sha>
<Sha>748cd976bf8b0f69b809e569943635ab8be36dc8</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.24311.3">
<Dependency Name="Microsoft.DotNet.SwaggerGenerator.MSBuild" Version="8.0.0-beta.24324.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c214b6ad17aedca4fa48294d80f6c52ef2463081</Sha>
<Sha>748cd976bf8b0f69b809e569943635ab8be36dc8</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.24311.3">
<Dependency Name="Microsoft.DotNet.Git.IssueManager" Version="8.0.0-beta.24324.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c214b6ad17aedca4fa48294d80f6c52ef2463081</Sha>
<Sha>748cd976bf8b0f69b809e569943635ab8be36dc8</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.24311.3">
<Dependency Name="Microsoft.DotNet.VersionTools" Version="8.0.0-beta.24324.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c214b6ad17aedca4fa48294d80f6c52ef2463081</Sha>
<Sha>748cd976bf8b0f69b809e569943635ab8be36dc8</Sha>
</Dependency>
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.24313.1">
<Dependency Name="Microsoft.DncEng.SecretManager" Version="1.1.0-beta.24321.4">
<Uri>https://github.com/dotnet/dnceng</Uri>
<Sha>52ec432649b0001426a6c13aea988bb8d74ebf91</Sha>
<Sha>44c25f86ba374d93ba9c22f12552deeed2221588</Sha>
</Dependency>
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.24313.1">
<Dependency Name="Microsoft.DncEng.Configuration.Bootstrap" Version="1.1.0-beta.24321.4">
<Uri>https://github.com/dotnet/dnceng</Uri>
<Sha>52ec432649b0001426a6c13aea988bb8d74ebf91</Sha>
<Sha>44c25f86ba374d93ba9c22f12552deeed2221588</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
14 changes: 7 additions & 7 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
<UsingToolNetFrameworkReferenceAssemblies>true</UsingToolNetFrameworkReferenceAssemblies>
<MicrosoftNetFrameworkReferenceAssembliesVersion>1.0.0-preview.1</MicrosoftNetFrameworkReferenceAssembliesVersion>
<!-- Libs -->
<MicrosoftDotNetSignToolVersion>8.0.0-beta.24311.3</MicrosoftDotNetSignToolVersion>
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.24311.3</MicrosoftDotNetBuildTasksFeedVersion>
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.24311.3</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.24311.3</MicrosoftDotNetGitIssueManagerVersion>
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.24311.3</MicrosoftDotNetVersionToolsVersion>
<MicrosoftDotNetSignToolVersion>8.0.0-beta.24324.1</MicrosoftDotNetSignToolVersion>
<MicrosoftDotNetBuildTasksFeedVersion>8.0.0-beta.24324.1</MicrosoftDotNetBuildTasksFeedVersion>
<MicrosoftDotNetSwaggerGeneratorMSBuildVersion>8.0.0-beta.24324.1</MicrosoftDotNetSwaggerGeneratorMSBuildVersion>
<MicrosoftDotNetGitIssueManagerVersion>8.0.0-beta.24324.1</MicrosoftDotNetGitIssueManagerVersion>
<MicrosoftDotNetVersionToolsVersion>8.0.0-beta.24324.1</MicrosoftDotNetVersionToolsVersion>
<MicrosoftNetTestSdkVersion>17.4.1</MicrosoftNetTestSdkVersion>
<MicrosoftDotNetInternalLoggingVersion>1.1.0-beta.24319.1</MicrosoftDotNetInternalLoggingVersion>
<MicrosoftAspNetCoreApiPaginationVersion>1.1.0-beta.24319.1</MicrosoftAspNetCoreApiPaginationVersion>
Expand All @@ -37,8 +37,8 @@
<MicrosoftDotNetWebAuthenticationVersion>1.1.0-beta.24319.1</MicrosoftDotNetWebAuthenticationVersion>
<ServiceFabricMocksVersion>1.1.0-beta.24319.1</ServiceFabricMocksVersion>
<CoreHealthMonitorVersion>1.1.0-beta.24319.1</CoreHealthMonitorVersion>
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.24313.1</MicrosoftDncEngSecretManagerVersion>
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.24313.1</MicrosoftDncEngConfigurationBootstrapVersion>
<MicrosoftDncEngSecretManagerVersion>1.1.0-beta.24321.4</MicrosoftDncEngSecretManagerVersion>
<MicrosoftDncEngConfigurationBootstrapVersion>1.1.0-beta.24321.4</MicrosoftDncEngConfigurationBootstrapVersion>
</PropertyGroup>
<!--Package names-->
<PropertyGroup>
Expand Down
8 changes: 8 additions & 0 deletions eng/common/templates-official/job/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ parameters:
# container and pool.
platform: {}

# If set to true and running on a non-public project,
# Internal blob storage locations will be enabled.
# This is not enabled by default because many repositories do not need internal sources
# and do not need to have the required service connections approved in the pipeline.
enableInternalSources: false

jobs:
- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }}
displayName: Source-Build (${{ parameters.platform.name }})
Expand Down Expand Up @@ -62,6 +68,8 @@ jobs:
clean: all

steps:
- ${{ if eq(parameters.enableInternalSources, true) }}:
- template: /eng/common/templates-official/steps/enable-internal-runtimes.yml
- template: /eng/common/templates-official/steps/source-build.yml
parameters:
platform: ${{ parameters.platform }}
8 changes: 8 additions & 0 deletions eng/common/templates-official/jobs/source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ parameters:
# one job runs on 'defaultManagedPlatform'.
platforms: []

# If set to true and running on a non-public project,
# Internal nuget and blob storage locations will be enabled.
# This is not enabled by default because many repositories do not need internal sources
# and do not need to have the required service connections approved in the pipeline.
enableInternalSources: false

jobs:

- ${{ if ne(parameters.allCompletedJobId, '') }}:
Expand All @@ -38,9 +44,11 @@ jobs:
parameters:
jobNamePrefix: ${{ parameters.jobNamePrefix }}
platform: ${{ platform }}
enableInternalSources: ${{ parameters.enableInternalSources }}

- ${{ if eq(length(parameters.platforms), 0) }}:
- template: /eng/common/templates-official/job/source-build.yml
parameters:
jobNamePrefix: ${{ parameters.jobNamePrefix }}
platform: ${{ parameters.defaultManagedPlatform }}
enableInternalSources: ${{ parameters.enableInternalSources }}
28 changes: 28 additions & 0 deletions eng/common/templates-official/steps/enable-internal-runtimes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Obtains internal runtime download credentials and populates the 'dotnetbuilds-internal-container-read-token-base64'
# variable with the base64-encoded SAS token, by default

parameters:
- name: federatedServiceConnection
type: string
default: 'dotnetbuilds-internal-read'
- name: outputVariableName
type: string
default: 'dotnetbuilds-internal-container-read-token-base64'
- name: expiryInHours
type: number
default: 1
- name: base64Encode
type: boolean
default: true

steps:
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
- template: /eng/common/templates-official/steps/get-delegation-sas.yml
parameters:
federatedServiceConnection: ${{ parameters.federatedServiceConnection }}
outputVariableName: ${{ parameters.outputVariableName }}
expiryInHours: ${{ parameters.expiryInHours }}
base64Encode: ${{ parameters.base64Encode }}
storageAccount: dotnetbuilds
container: internal
permissions: rl
43 changes: 43 additions & 0 deletions eng/common/templates-official/steps/get-delegation-sas.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
parameters:
- name: federatedServiceConnection
type: string
- name: outputVariableName
type: string
- name: expiryInHours
type: number
default: 1
- name: base64Encode
type: boolean
default: false
- name: storageAccount
type: string
- name: container
type: string
- name: permissions
type: string
default: 'rl'

steps:
- task: AzureCLI@2
displayName: 'Generate delegation SAS Token for ${{ parameters.storageAccount }}/${{ parameters.container }}'
inputs:
azureSubscription: ${{ parameters.federatedServiceConnection }}
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
# Calculate the expiration of the SAS token and convert to UTC
$expiry = (Get-Date).AddHours(${{ parameters.expiryInHours }}).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
$sas = az storage container generate-sas --account-name ${{ parameters.storageAccount }} --name ${{ parameters.container }} --permissions ${{ parameters.permissions }} --expiry $expiry --auth-mode login --as-user -o tsv
if ($LASTEXITCODE -ne 0) {
Write-Error "Failed to generate SAS token."
exit 1
}
if ('${{ parameters.base64Encode }}' -eq 'true') {
$sas = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($sas))
}
Write-Host "Setting '${{ parameters.outputVariableName }}' with the access token value"
Write-Host "##vso[task.setvariable variable=${{ parameters.outputVariableName }};issecret=true]$sas"
Loading

0 comments on commit 751d1ba

Please sign in to comment.