Проблема пакета TeamCity / Octopus Deploy для веб-приложений - PullRequest
0 голосов
/ 03 октября 2018

У меня есть веб-приложение, которое я пытаюсь развернуть в Azure.Мой стек:

TeamCity 9.1.6 Octopus 4.0.7

У меня возникла проблема , нацеленная на слот Staging , что я теперь могу сделать.Однако пакет Nuget, который я получаю от TeamCity, содержит две дополнительные директории над app_data, который является верхним уровнем, который мне нужно развернуть.Чтобы преодолеть проблему промежуточного развертывания, я использовал другой шаблон (развертывание веб-приложения Azure), чем тот, который использовался (DeployAzureWebApp).В первом были сценарии pre / deploy / post, в которых, я думаю, pre извлекал каталог app-data и игнорировал остальные.

Мне нужно скопировать это, но шаблон, который я сейчас использую, непоявляются, чтобы разрешить сценарии.Я немного прочитал об OctoPack и задаюсь вопросом, есть ли какой-нибудь шаг, который я могу включить, который переформатирует пакет для меня, или я должен вернуться в город команды и заставить его создать пакет, как требуется.

1 Ответ

0 голосов
/ 04 октября 2018

Чтобы решить эту проблему, все, что мне нужно было сделать, это включить сценарии с помощью кнопки «Настроить функции».Затем я смог подготовить сценарий перед развертыванием, чтобы изменить содержимое извлеченного пакета перед его развертыванием.

#path variables
$projectName = $OctopusParameters['Octopus.Action.Package.PackageId']
$version = $OctopusParameters['Octopus.Action.Package.PackageVersion']
$location = Get-Location

#Write-Host "Project Name: ${projectName}"
#Write-Host "Get-Location: ${location}"
#Write-Host "Project Version: ${version}"


$appData = (Get-ChildItem -Path ${location}\${projectName}.${version} -Filter "*app_data*" -Recurse -Directory).Fullname


$source = "${location}\${projectName}.${version}\GeneratedWebPackages\*"
$destination = "${location}\${projectName}.${version}"

#Write-Host "Source: ${source}"
#Write-Host "Destination: ${destination}"
#Write-Host "App Data Path: ${appData}"


# Move the app-data directory and all sub directories
Move-Item -Path "${appData}" -Destination "${location}" -Force

#remove the original
Remove-Item -Recurse -Force -Path "${destination}"

Хотя это работает, я считаю, что правильным решением было бы создание пакета TeamCity, как требуется впервое место.

...