Teamcity 2018.1. Не удается найти метод для развертывания артефакта .war в MS Azure / Tomcat в сценарии сборки. - PullRequest
0 голосов
/ 05 июля 2018

Мы - небольшая существующая команда разработчиков Java / Web, использующая IJ Idea и CI / Hudson с Maven для автоматического развертывания артефактов в локальной среде IBM Websphere в течение нескольких лет.

Недавно мы перенесли новые приложения в MS Azure / Tomcat и обнаружили, что нам не удалось загрузить веб-приложения в Azure из-за корпоративных прокси / брандмауэров, поэтому мы прибегли к использованию механизмов ручной загрузки / развертывания Azure.

В настоящее время мы оцениваем TeamCity (как на виртуальной машине Linux на Azure, так и в сценарии развертывания Azure Teamcity) и успешно продвигаемся по обычным шагам сборки / развертывания / выпуска GIT для Nexus.

К сожалению, я столкнулся с блокировщиком, когда попытался развернуть артефакт .war в Azure / Tomcat для CI (и для производства)

Мы загрузили все доступные подключаемые модули Azure для TeamCity (и мы успешно внедряем их в Azure на нашей оценке Jenkins с использованием подключаемого модуля службы приложений Azure)

1 Ответ

0 голосов
/ 17 июля 2018
Build Step
Runner Type: PowerShell
Script source
-------------

$nexususername = 'admin'
$nexuspassword = 'adminPassword'

$username = '$AZUREUSER'
$password = 'AzurePassword'
$userAgent = "powershell/1.0"

$apiUrl = 'https://yoursite.scm.azurewebsites.net/api/vfs/site/wwwroot/webapps/'
$filePath = '/home/teamcity/deploy/'

$nexusUrl = 'http://yoursite.westeurope.cloudapp.azure.com:8081/repository/your-releases/your/path/to/sample-web/2.2/sample-web-2.2.war'

$nexussecpasswd = ConvertTo-SecureString $nexuspassword -AsPlainText -Force
$nexuscredential = New-Object System.Management.Automation.PSCredential($nexususername, $nexussecpasswd)

$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username, $secpasswd)

Write-Host ('>>> Start Downloading File from nexus')
Invoke-WebRequest -Uri $nexusUrl -Credential $nexuscredential -Method Get -Outfile $filePath\sample-web.war
Write-Host ('>>> End Downloading File from nexus')


Write-Host ">>> Start Uploading WAR File"
Invoke-RestMethod -Uri $apiUrl'sample-web.war' -Credential $credential -AllowUnencryptedAuthentication -UserAgent $userAgent -Method Put -InFile $filePath\sample-web.war -ContentType "multipart/form-data"
Write-Host ">>> Finish Uploading WAR File"
...