我有一个要部署到Azure的WebApp。我的堆栈是:
TeamCity 9.1.6 章鱼4.0.7
我遇到了一个问题targeting the Staging slot,现在可以解决。但是,我从TeamCity获得的Nuget软件包在app_data之上包含两个额外的目录,这是我需要部署的顶级目录。为了解决暂存部署问题,我使用了与正在使用的模板(DeployAzureWebApp)不同的模板(部署Azure Web App)。第一个有pre / deploy / post脚本,我认为pre会拉出app-data目录,而忽略其余的脚本。
我需要复制它,但是我现在使用的模板似乎不允许使用脚本。我已经阅读了一些有关OctoPack的信息,并且想知道是否可以包括一个步骤来为我重新格式化程序包,或者是否应该回到team city并根据需要创建程序包。
答案 0 :(得分:0)
要解决此问题,我需要做的就是从“配置功能”按钮启用脚本。然后,我可以使用预部署脚本在部署额外的软件包内容之前对其进行更改。
#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首先根据需要创建程序包。