From 56bc08104e91be4946effd0f070337a49f0dfb6f Mon Sep 17 00:00:00 2001 From: Dmitry Shibanov Date: Thu, 20 Feb 2020 17:52:12 +0300 Subject: [PATCH] Add deployment step (#4) * add release step * add creation release * move file to another folder * resolve comments * minor changes --- .../azure-pipelines/image-generation.yml | 12 +++++++ images.CI/create-release.ps1 | 31 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 images.CI/create-release.ps1 diff --git a/images.CI/azure-pipelines/image-generation.yml b/images.CI/azure-pipelines/image-generation.yml index 477cdc5f8ef7..eb0136eb5fed 100644 --- a/images.CI/azure-pipelines/image-generation.yml +++ b/images.CI/azure-pipelines/image-generation.yml @@ -35,6 +35,18 @@ jobs: -VirtualNetworkSubnet $(BUILD_AGENT_SUBNET_NAME) ` -GitHubFeedToken $(GITHUB_TOKEN) + - task: PowerShell@2 + displayName: 'Create release for VM deployment' + inputs: + targetType: filePath + filePath: ./images.CI/create-release.ps1 + arguments: -BuildId $(Build.BuildNumber) ` + -Organization $(RELEASE_TARGET_ORGANIZATION) ` + -DefinitionId $(RELEASE_TARGET_DEFINITION_ID) ` + -Project $(RELEASE_TARGET_PROJECT) ` + -ImageName ${{ parameters.image_type }} ` + -AccessToken $(RELEASE_TARGET_TOKEN) + - task: PowerShell@2 displayName: 'Clean up resources' condition: always() diff --git a/images.CI/create-release.ps1 b/images.CI/create-release.ps1 new file mode 100644 index 000000000000..72d0db4e1c06 --- /dev/null +++ b/images.CI/create-release.ps1 @@ -0,0 +1,31 @@ +param( + [UInt32] [Parameter (Mandatory)] $BuildId, + [String] [Parameter (Mandatory)] $Organization, + [String] [Parameter (Mandatory)] $Project, + [String] [Parameter (Mandatory)] $ImageName, + [String] [Parameter (Mandatory)] $DefinitionId, + [String] [Parameter (Mandatory)] $AccessToken +) + +$Body = @{ + definitionId = $DefinitionId + variables = @{ + ImageBuildId = @{ + value = $BuildId + } + ImageName = @{ + value = $ImageName + } + } + isDraft = "false" +} | ConvertTo-Json -Depth 3 + +$URL = "https://vsrm.dev.azure.com/$Organization/$Project/_apis/release/releases?api-version=5.1" +$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("'':${AccessToken}")) +$headers = @{ + Authorization = "Basic ${base64AuthInfo}" +} + +$NewRelease = Invoke-RestMethod $URL -Body $Body -Method "POST" -Headers $headers -ContentType "application/json" + +Write-Host "Created release: $($NewRelease._links.web.href)" \ No newline at end of file