Я играл с TeamCity, чтобы запустить CI-среду.Доступ к артефактам TeamCity в шаге построения
Я начал следующий Трой Хант 'You're deploying wrong', который был очень полезным, однако я хотел бы разделить упаковку и развертывание в 2 отдельных шагов, по следующим причинам:
- Я хотел передать дополнительные флаги msdeploy, который не является возможным (до знания m, y) с помощью пакета MSBuild и развертывания, описанного Трои.
- Я могу легко отключить второй этап сборки i.e, если мне когда-либо понадобится создать пакет, но не развернуть его.
- Я хотел использовать флаг -skip на msdeploy, чтобы он не удалял определенные папки, что снова не могло найти никакого способа сделать, не передавая в качестве аргумента командной строки.
Итак, в моем первом шаге MSBuild я просто параметры:
/P:Configuration=%env.Configuration%
/P:VisualStudioVersion=11.0
/P: IgnoreDeployManagedRuntimeVersion = Правда
А потом у меня есть вторая сборка Шаг, который использует командную строку сборку бегун, чтобы выполнить следующую команду MSDeploy:
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package="C:\ProgramData\JetBrains\TeamCity\system\artifacts\MyProject\%system.teamcity.buildConfName%\%teamcity.build.id%\MyProject.Web.csproj.zip" -dest:auto,ComputerName='https://devserver:8172/msdeploy.axd?site=MyWebsite',UserName='domain\username',Password='password',IncludeAcls='False',AuthType='Basic' -skip:objectName=dirPath,absolutePath=media$ -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -retryAttempts=2 -allowuntrusted
Проблема заключается в том, что, по-видимому, TeamCity не публикует артефакты до тех пор, пока все шаги сборки не будут завершены, поэтому процесс командной строки завершится неудачно, потому что пакет zip-файла фактически не существует в этой точке.
Я кое-что прочитал о publishing artifacts whilst the Build is still in progress, но это похоже на взлома.
Любые советы были бы весьма полезными.