otakuSiD
CI teamcity aws youtrack.jetbrains.com

There are couple issues with push agent functionality:

— by default wrapper.ntservice.interactive setting in the buildAgent/launcher/conf/wrapper.conf configuration file is set to true — this brings to error during agent installation with psexec:


in the push agent logs:

bootstrapper.exe exited on MY_AGENT_HOST_IP with error code 255.
Remote agent installation failed: Command 'D:\:\teamcity\temp___5060497447753492559\cli-wrapper.exe D:\teamcity_data\system\pluginData\psexec\psexec.exe /accepteula \\MY_AGENT_HOST_IP -e -h -u MY_USER -p ********** -c -f D:\teamcity\temp___5612841585882618839\bootstrapper.exe bootstrap -u MY_TC_MASTER_HOST – bin\install.bat MY_TC_MASTER_HOST C:\\BuildAgent 27f25fcd78b2812602f9a14ea6756bae' was executed with error message(s): Execution error. Return code=255


in the windows event logs on agent host:

The TeamCity Build Agent service is marked as an interactive service. However, the system is configured to not allow interactive services. This service may not function properly.


— it would be good to determine if push agent functionality used to install agent on EC2 host and set wrapper.ntservice.dependency.1=Ec2Config setting of the buildAgent/launcher/conf/wrapper.conf configuration file. As mentioned in manual (https://confluence.jetbrains.com/display/TCD9/Setting+up+and+Running+Additional+Build+Agents#SettingupandRunningAdditionalBuildAgents-BuildAgentasaWindowsService). Or provide corresponding configuration option in the Agent Push preset configuration dialog

— to simplify agent push configuration on the AWS please add note to manual about 445 port that should be configured in the AWS::EC2::SecurityGroup attached to build agent host. This allow to communicate psexec from TeamCity server host with build agent host
otakuSiD
msvs dev CI prepare to migration on MSVS 2015

— Microsoft Build Tools 2015 (https://www.microsoft.com/en-us/download/details.aspx?id=48159)
— MSVS targets (c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0[Web|WebApplications])
— MSVS 2015 Shell (Isolated) (should be at visualstudio.com in Tools for Visual Studio 2015 -> Visual Studio 2015 Shell sections) (https://connect.microsoft.com/VisualStudio/ExtendVS)
— .NET Framework 4.6 (http://www.microsoft.com/en-us/download/details.aspx?id=48137) or .NET Framework 4.6.1 (https://www.microsoft.com/en-us/download/confirmation.aspx?id=49981)


jameschambers.com
qnikst
CI хочется_странного ? programming а какие есть "дешевые" по ресурсам CI системы или как их писать, чтобы легко интегрировать с github? А то у меня висят пара дешевых инстансов на DO, на которых только quassel не жручий, и не охота лишние деньги circleCI платить (цена вполне сравнима).
otakuSiD
code dev CI .net azure
Как запилить пакет для деплоя в облако при интеграции. Есть два способа:

1. Натравить утилиту "CSPack" на выхлопы Azure Project:

c:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\bin\cspack.exe c:\src\Eapi.Azure\ServiceDefinition.csdef /role:My.WcfServices;c:\src\My.WcfServices\bin\Release\;My.WcfServices.dll /role:My.AnotherRole;c:\src\My.AnotherRole\bin\Release\;My.AnotherRole.dll /out:c:\MyAzurePackage_build_0.0.0.1.cspkg

2. Билдить Azure Project с нужными параметрами:

msbuild.exe c:\src\MyProject.Azure\MyProject.ccproj /p:Configuration=Release /p:TargetProfile=Cloud /p:PublishDir=c:\Packages\ /target:Publish /verbosity:quiet /maxcpucount:8 /logger:Kobush.Build.Logging.XmlLogger,c:\TOOLS\MSBuild\Kobush.Build.dll;c:\msbuild-report.xml /nodeReuse:true


Второй способ не так гибок но требует меньше ручной настройки, так как Azure Project уже содержит все необходимые данные.


CSPack Command-Line Tool:
http://msdn.microsoft.com/en-us/library/windowsazure/gg432988.aspx

Windows Azure Project:
http://msdn.microsoft.com/en-us/library/windowsazure/ee405487.aspx

Command-Line Build for Windows Azure:
http://msdn.microsoft.com/en-us/library/windowsazure/hh535755.aspx
otakuSiD
гавно dev CI ASP.NET msdeploy Похоже "MSDeploy" годиться только для синхронизации сайтов, для нормального деплоймента в процессе интеграции его не затачивали :(

Чего бы от него хотелось:

1. Запаковать скомпилированные сорцы.
2. Добавить в пакет метаданные для IIS
3. Развернуть пакет на удаленном серваке.

Если на серваке нужного сайта нет — создать, если есть — обновить метаданные при необходимости.

На данный момент добавить метаданные в пакет "MSDeploy" может только скопировав их с уже существующего сайта. И создавать сайт на серваке, если его нет, эта поделка не умеет.

Вобщем задумка хорошая, конфигурация гибкая, но для нормального использования в CI нихуя не годится :(
otakuSiD
dev CI .net packaging deploy Возможные ошибки при настройке "MSDeploy":

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (2850,5):

errorMSB4018: The "IsCleanMSDeployPackageNeeded" task failed unexpectedly.
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Web.Publishing.Tasks.Common.Utility.CheckMSDeploymentVersion()
at Microsoft.Web.Publishing.Tasks.Common.Utility.get_IsMSDeployInstalled()
at Microsoft.Web.Publishing.Tasks.Common.Utility.CheckMSDeploymentVersion(Task task)
at Microsoft.Web.Publishing.Tasks.IsCleanMSDeployPackageNeeded.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)

На билд машине не установлен "Web Deploy" (http://www.iis.net/download/webdeploy).

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (1737,5):

error: No such host is known



C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (1740,7):

errorMSB4018: The "MapUriToIisWebServer" task failed unexpectedly.
System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_MetakeyPath()



C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (1740,7):

errorMSB4028: The "MapUriToIisWebServer" task's outputs could not be retrieved from the "MetakeyPath" parameter. Object reference not set to an instance of an object.

В настройках проекта стоит калка "Include IIS settings as configured in IIS", при билде MSDeploy пробует найти ваш сайт на билд машине что бы скопипастить его настройки и не находит. Ибо нехер на билде сайты хостить ;) Для решения проблемы — снять галки "Include IIS settings as configured in IIS" для тех конфигураций вашего проекта, которые планируют собираться на билд машине.

G:\Work\CruiseControl\CI_on_DVCS\Src\CI_on_DVCS\CI_on_DVCS.csproj (142,3):

errorMSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

На билд машине нет MSBuild таргетов для деплоя. Либо ставим "Microsoft Visual Studio 2010 Shell Redistributable Package" (http://www.microsoft.com/en-us/download/details.aspx?id=115 или microsoft.com). Либо копируем пачку таргетов с дев машины в то же место на билд машине.
otakuSiD
dev CI .net packaging deploy Что бы инициировать создание "Deployment Package" на билд сервере нужно установить "Web Deploy" (http://www.iis.net/download/webdeploy); "Microsoft Visual Studio 2010 Shell Redistributable Package" (http://www.microsoft.com/en-us/download/details.aspx?id=115 или microsoft.com).

У меня на сервак "Microsoft Visual Studio 2010 Shell" не стала, поэтому я просто скопировал пачку таргетов с дев машины в то же место на билд машине (c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\).

После этого билд сервер готов. Теперь нужно настроить "Package" свойства для веб приложений:

vishaljoshi.blogspot.com
msdn.microsoft.com

Запускать из "NAnt" можно вот так:

pastebin.com
otakuSiD
гавно dev CI packaging deploy
errorMSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

MS придумывает годную фичу, но, как всегда, косячит в мелочах. Вот чего сразу нужные таргеты не положить? Схерали мне на билд машину студию ставить ради пары таргетов (ну или костыль в виде "Microsoft Visual Studio 2010 Shell (Integrated) Redistributable Package")?


stackoverflow.com
blog.siliconvalve.com
otakuSiD
versioning dev CI .net AssemblyInfo Global AssemblyInfo

stackoverflow.com

Способ запилить удобное проставление версий для сборок. Получится один глобальный "AssemblyInfo" файл с номерами версий, инфе о компании, копирайтами и прочей шняге, повторяющейся во всех проектах одного солюшена. И локальные "AssemblyInfo" файлы с уникальной для каждого проекта инфой.

При очередном билде интегрейшн сервер меняет номер версии в этом "глобальном" файле и она применяется ко всем сборкам в границах солюшена.

Главное не забыть из локальных, для каждого проекта, "AssemblyInfo" файлов выбрить строки повторяющиеся в глобальном "AssemblyInfo".
otakuSiD
Mercurial CI build_label dvcs revision_version Жуец, а есть тут кто с проектом который юзает DVCS какую (Mercurial аль Git там) и интегрирутся с помощью CruiseControl.NET? Есть вопросец по поводу того как вы номера ревизии для билда проставляете. Они ведь у каждого в репе по своему генерятся, а хеши в качестве версии как то не принято юзать. Как кто эту задачу решает?

На Subversion проблемы небыло. Есть формат {major}.{minor}.{revision}.{build} и номер ревизии из репозитория берется, он уникален у всех. А с DVCS такое уже не прокатит.