Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Create release via API via powershell

Антон Курьян April 28, 2020

I am trying to achieve similar result as in https://community.atlassian.com/t5/Bamboo-questions/API-Call-to-Create-Release/qaq-p/773999

My Bamboo version is 6.9.2 build 60911.
Here is the code:

First, I am getting all deployment environments attached to build plan via request:

Invoke-WebRequest -uri $($baseUrl + "/rest/api/latest/deploy/project/forPlan?planKey=$buildPlanKey") -Headers $authHeader -UseBasicParsing -ErrorAction Stop -Verbose;

Then, I select my deployment project id out of results to variable $deploymentId and check, if there is a release with my name present

Invoke-WebRequest -uri $($baseUrl + "/rest/api/latest/deploy/project/$deploymentId/versions") -Headers $authHeader -UseBasicParsing -ErrorAction Stop -Verbose;

If release with my name is not present - I wish to create it with following code

        $releaseData = @{            
planResultKey = $buildPlanKey            
name          = $BambooReleaseName        
};        


$json = $releaseData | ConvertTo-Json;

try {            
Invoke-RestMethod -Method Post -Body $json -Uri $($url + "/rest/api/latest/deploy/project/$deploymentId/version.json") -Headers $headers -ContentType "application/json" -Verbose;        
}        
catch 
{            
$result = $_.Exception.Response.GetResponseStream();
$reader = New-Object System.IO.StreamReader($result);
$reader.BaseStream.Position = 0;
$reader.DiscardBufferedData();
$reader.ReadToEnd(); 
}

But, at the end I get this:

{"errors":["Please provide a valid plan key"],"fieldErrors":{}}

However, as you can see by previous code - I am using valid plan key to retrieve deployment project. Why this error pops up? What am I doing wrong?

 

1 answer

1 accepted

0 votes
Answer accepted
Антон Курьян April 28, 2020

I found the reason - in json 

$releaseData = @{            
planResultKey = $buildPlanKey            
name          = $BambooReleaseName        
};   

I need to pass valid build result, not build plan

So it should be 

$releaseData = @{            
planResultKey = ${bamboo.buildResultKey}            
name          = $BambooReleaseName        
};   

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events