to post messages and comments.

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

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

а какие есть "дешевые" по ресурсам CI системы или как их писать, чтобы легко интегрировать с github? А то у меня висят пара дешевых инстансов на DO, на которых только quassel не жручий, и не охота лишние деньги circleCI платить (цена вполне сравнима).

Как запилить пакет для деплоя в облако при интеграции. Есть два способа:

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

Похоже "MSDeploy" годиться только для синхронизации сайтов, для нормального деплоймента в процессе интеграции его не затачивали :(

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

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

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

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

Вобщем задумка хорошая, конфигурация гибкая, но для нормального использования в CI нихуя не годится :(

Возможные ошибки при настройке "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 Либо копируем пачку таргетов с дев машины в то же место на билд машине.

Что бы инициировать создание "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

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

Global AssemblyInfo

stackoverflow.com

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

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

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

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

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

Жуйц, а есть у кого книга Continuous Integration: Improving Software Quality and Reducing Risk от Paul Duvall. Или русский перевод Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска в электронном виде?

Как не странно но в интернетах ее нету. Тотально подчисчают чтоле О_о

Как приятно видеть строку "BUILD SUCCESSFUL". При этом понимаешь что 4 месяца потраченные на написание фреймворка, развертывания сервера под Hudson, SeleniumGrid, написания svn-hook прошли не зря. dl.dropbox.com — на картинке в консоле htop c сервера hudson|seleniumGrid и машины на которой крутятся боты Selenium RC, на компе рядом непосредственно боты, которые производят тестирование.
Теперь дело за малы, обучить этому всему тестеров :))