TeamCity (9.x) - Department of Distributed and Dependable Systems
Transcription
TeamCity (9.x) - Department of Distributed and Dependable Systems
TeamCity (9.x) Michal Vavrek 14.4.2015 Basic Info ● Developed by JetBrains ● Java-based build management and continuous integration server ● Server-based Web application ● IDE-independent Continuous integration ● A development methodology of daily developer integrations verified by automated builds ● NOT CI ○ ○ ○ ○ nightly builds branches build via IDEs continuous complilation Continuous integration Risks during development ● Fixing bugs late ● Lack of team cohesion ● Poor quality code base ● Lack of deployable software CI reduce the risks CI - Better, faster, cheaper Better ● quality, tested early and often,... Faster ● parallel tests, no integration points,... Cheaper ● find bugs earlier, fix when least costly,... Build Ingredients = build steps ● Compilation ● Test execution ● DB integration ● Code inspection ● Deployment ● Documentation generation Build step Build runner - ‘plugins’ ● allows integration with specific build tool ● .NET Process Runner, Ant, VS, NUnit, MSBuild, Maven, Command Line,... Execution policy ● ● ● ● Build status successful Previous steps finished successfully Always Even, if some steps failed Triggers Build can be triggered ● Manually by ‘Run’ button ● Automatically with Triggers ○ ‘build trigger’ is a rule which initialize new build (to build queue) ○ VCS, Schedule, Finish Build, Dependency (Manen, NuGET), Branch Remote Run, Retry Build Build queue ● List of triggered builds waiting to be started. ● Builds are distributed to compatible build agents as soon as the agents are idle. ● Optimizations ○ merge similar builds (new will not be added) ○ replace latter chain build with more changes ○ Build Agent ● Piece of sw listens TC commands and starts the actual build processes ● Can be installed separately from TC server Typically ○ check out source code ○ download build artifacts ○ run build process Single build at a time Build Agent Assign job based on compatibility requirements ● Can execute MSBuild,... Automatically upgrade when necessary Agent Pools - assign projects Agent must have unique name TC Integrated Code coverage Inspections Duplicates Platforms supported .NET, Java, Ruby TC Integration Version Control Systems ● SVN, CVS, Git, Mercurial, SourceSafe,... IDEs ● Visual Studio, IntelliJ IDEA, Eclipse,... Notifications ● Email, RSS, Jabber, IDE,... TC Integration Remote Run ● Personal build = pre-commit Open APIs ● Runners Scripted build runners Licence Freemium for open source projects ● up to 20 build and 3 build agents Enterprise Server ● from €1999 Build Agent (1 agent + 10 build configs) ● €299 TC vs Jenkins TC better for .NET - integrated and included tools (code coverage, testing fw,...) User-friendly / Developers experience More Informations Official website ● https://www.jetbrains.com/teamcity/ TC Blog ● http://blog.jetbrains.com/teamcity/ Documentation ● https://confluence.jetbrains.com/display/TCD9/