0
我一直在尋找使用Octopus API禁用單個進程步驟。我有一個包含10個步驟的項目,我使用TeamCity作爲CI工具。所以我有一個條件,當我運行構建時需要禁用1步(無論我想要)。我希望在促銷發佈時禁用/跳過特定步驟。在Octopus部署中使用API禁用進程步驟
我能夠達到,直到下面的步驟未工作
Add-Type -Path 'Octopus.Client.dll'
$apikey = 'API-23H4GJ243HG2H3J423433H' # Get this from your profile
$octopusURI = 'http://localhost:9090' # Your server address
$projectName = "Demo" # Name of your project
$endpoint = new-object Octopus.Client.OctopusServerEndpoint $octopusURI,$apikey
$repository = new-object Octopus.Client.OctopusRepository $endpoint
$Header = @{ "X-Octopus-ApiKey" = $apikey }
$project = $repository.Projects.FindByName($projectName)
$deploymentProcess = $repository.DeploymentProcesses.Get($project.DeploymentProcessId)
foreach ($step in $deploymentProcess.Steps)
{
if($step.Name = "DemoStep")
{
$step.Actions.IsDisabled = 'True'
break
}
}
$repository.DeploymentProcesses.Modify($deploymentProcess)
或者
$Body = @{
IsDisabled = "True"
} | ConvertTo-Json
Invoke-RestMethod -Uri $OctopusURI/api/deploymentprocesses/deploymentprocess-Projects-21/ -Method PUT`
-Headers $Header -Body $Body
或者 Octo.exe --skip = stepname只會在這種情況下工作嗎?
你能幫忙弄清楚這個嗎?
感謝, 伊姆蘭
您是否嘗試過使用Run Condition並將其設置爲變量條件,以便使用變量表達式? – benPearce
好主意。我從來沒有考慮過使用它。我爲其他步驟使用運行條件。將它用於這些步驟也將解決我的其他問題。我已經使用Octopus.client庫創建了另一個Powershell腳本來遠程更新變量,所以看起來像我擁有了一切。謝謝@benPearce – Imran
這對我有效。我還必須使用另一個腳本,它將在升級到生產之前更改變量值後用於更新變量快照。我還得到了使用八達通支持中的Octopus.Client禁用處理步驟的工作腳本。我會在回答中發佈該腳本。 – Imran