diff --git a/.vsts-ci/releasePhase.yml b/.vsts-ci/releasePhase.yml index 6c851da78..e282c8b11 100644 --- a/.vsts-ci/releasePhase.yml +++ b/.vsts-ci/releasePhase.yml @@ -26,10 +26,15 @@ jobs: matrix: $[ ${{ parameters.matrix }} ] maxParallel: ${{ parameters.maxParallel }} variables: - dockerImage: 'powershell' - ACR: ${{ parameters.ACR }} - releaseTag: ${{ parameters.releaseTag }} - scanType: Register + - name: dockerImage + value: 'powershell' + - name: ACR + value: ${{ parameters.ACR }} + - name: releaseTag + value: ${{ parameters.releaseTag }} + - name: scanType + value: Register + - group: Azure Blob Variable Group pool: name: ${{ parameters.pool }} @@ -47,7 +52,7 @@ jobs: - task: UseDotNet@2 inputs: packageType: 'sdk' - version: 6.x + version: 7.x - pwsh: | dotnet --list-sdks @@ -99,15 +104,42 @@ jobs: displayName: 'docker login $(dockerHost)' condition: and( succeededOrFailed(), ne(variables['Channel'],'')) - - pwsh: ' az login --service-principal -u $(az_url) -p $(az_key) --tenant $(az_name)' + + - pwsh: | + if($env:ACR -eq 'yes') + { + Write-Host 'Using ACR, will need to az login' + az login --service-principal -u $(az_url) -p $(az_key) --tenant $(az_name) + } displayName: 'az login' condition: and( succeededOrFailed(), ne(variables['Channel'],'')) - pwsh: | - az account set --subscription $(StorageSubscriptionName) - $querystring = az storage account generate-sas --account-name $(StorageAccount) --services b --resource-types o --expiry ((get-date).AddDays(1).ToString("yyyy-MM-dd")) --permission r --https-only | convertfrom-json - $url = "https://$(StorageAccount).blob.core.windows.net/?$querystring" - Write-Host "##vso[task.setvariable variable=SasUrl;]$url" + $modules = 'Az.Accounts', 'Az.Storage' + foreach ($module in $modules) { + if (!(Get-Module $module -listavailable)) { + Write-Host "installing $module..." -verbose + Install-Module $module -force -allowclobber + } else { + Write-Host "$module is already installed" -verbose + } + } + displayName: 'Install AzAccounts' + condition: and( succeededOrFailed(), ne(variables['Channel'],'')) + + - task: AzurePowerShell@5 + inputs: + azureSubscription: '$(AzureFileCopySubscription)' + scriptType: inlineScript + azurePowerShellVersion: latestVersion + pwsh: true + inline: | + $containerName = Out-String -InputObject $(DOCKERNAMESPACE) -NoNewline + $containerName = $containerName.Replace('.', '-') + $context = New-AzStorageContext -StorageAccountName $(StorageAccount) + $querystring = New-AzStorageContainerSASToken -Context $context -Name $containerName -Permission r -ExpiryTime ((get-date).AddMinutes(180)) -Protocol HttpsOnly + $url = "https://$(StorageAccount).blob.core.windows.net/$querystring" + Write-Host "##vso[task.setvariable variable=SasUrl;]$url" displayName: 'Set SasUrl variable' condition: and( succeededOrFailed(), ne(variables['Channel'],'')) @@ -116,7 +148,6 @@ jobs: condition: and( succeededOrFailed(), ne(variables['Channel'],'')) - pwsh: | - az account set --subscription $(AcrSubscriptionName) $extraParams = @{} if($env:ACR -eq 'no') { @@ -125,6 +156,7 @@ jobs: } else { + az account set --subscription $(AcrSubscriptionName) Write-Host 'Using ACR, will NOT test behavior...' $extraParams.Add('SkipTest',$true) } @@ -153,7 +185,12 @@ jobs: displayName: 'docker logout' condition: and( always(), ne(variables['Channel'],'')) - - pwsh: 'az logout' + - pwsh: | + if($env:ACR -eq 'yes') + { + Write-Host 'Using ACR, will need to az logout' + az logout + } displayName: 'az logout' condition: and( succeededOrFailed(), ne(variables['Channel'],'')) diff --git a/.vsts-ci/releaseStage.yml b/.vsts-ci/releaseStage.yml index 5bd192f94..5c7705d54 100644 --- a/.vsts-ci/releaseStage.yml +++ b/.vsts-ci/releaseStage.yml @@ -39,14 +39,14 @@ stages: - GenerateYaml_${{ parameters.channel }} jobName: Build_Linux_x64 - # - template: releasePhase.yml - # parameters: - # matrix: dependencies.GenerateYaml_${{ parameters.channel }}.outputs['matrix.matrix_${{ parameters.channel }}_linux_arm64'] - # dependsOn: - # - GenerateYaml_${{ parameters.channel }} - # jobName: Build_Linux_arm - # pool: PS-mscodehub-ARM - # vmImage: PSMMSUbuntu20.04-ARM64-secure + - template: releasePhase.yml + parameters: + matrix: dependencies.GenerateYaml_${{ parameters.channel }}.outputs['matrix.matrix_${{ parameters.channel }}_linux_arm64'] + dependsOn: + - GenerateYaml_${{ parameters.channel }} + jobName: Build_Linux_arm + pool: PS-mscodehub-ARM + vmImage: PSMMSUbuntu20.04-ARM64-secure - template: releasePhase.yml parameters: diff --git a/.vsts-ci/releasebuild.yml b/.vsts-ci/releasebuild.yml index 4c34f1662..352cd3ad4 100644 --- a/.vsts-ci/releasebuild.yml +++ b/.vsts-ci/releasebuild.yml @@ -4,9 +4,9 @@ parameters: - name: 'previewReleaseTag' default: 'v7.4.0-preview.1' - name: 'ltsReleaseTag' - default: 'v7.2.8' + default: 'v7.2.10' - name: 'stableReleaseTag' - default: 'v7.3.1' + default: 'v7.3.3' resources: - repo: self diff --git a/.vsts-ci/templatesReleasePipeline/releaseStage.yml b/.vsts-ci/templatesReleasePipeline/releaseStage.yml index 80a90b7a0..554ed8881 100644 --- a/.vsts-ci/templatesReleasePipeline/releaseStage.yml +++ b/.vsts-ci/templatesReleasePipeline/releaseStage.yml @@ -57,14 +57,14 @@ stages: dependsOn: - GenerateYaml_${{ parameters.channel }} - # - template: ./releaseJob.yml - # parameters: - # jobName: ${{ parameters.channel }}_linux_arm - # matrix: dependencies.GenerateYaml_${{ parameters.channel }}.outputs['matrix.matrix_${{ parameters.channel }}_linux_arm64'] - # WhatIf: ${{ parameters.WhatIf }} - # vmImage: "PSMMSUbuntu20.04-Secure" - # dependsOn: - # - GenerateYaml_${{ parameters.channel }} + - template: ./releaseJob.yml + parameters: + jobName: ${{ parameters.channel }}_linux_arm + matrix: dependencies.GenerateYaml_${{ parameters.channel }}.outputs['matrix.matrix_${{ parameters.channel }}_linux_arm64'] + WhatIf: ${{ parameters.WhatIf }} + vmImage: "PSMMSUbuntu20.04-Secure" + dependsOn: + - GenerateYaml_${{ parameters.channel }} - stage: Release_ManifestList_${{ parameters.channel }} jobs: