{"id":29,"date":"2026-10-13T23:31:21","date_gmt":"2026-10-13T23:31:21","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2014\/09\/12\/teamcity-training\/"},"modified":"2026-10-13T23:31:21","modified_gmt":"2026-10-13T23:31:21","slug":"teamcity-training","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/teamcity-training\/","title":{"rendered":"TeamCity Training Curriculum: CI\/CD Course Outline, Labs, and Delivery Formats"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Originally published on 2014-09-12; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This page turns the original training advertisement into a practical reference for <strong>SCM engineers, build and release engineers, and developers<\/strong> who want to adopt or improve Continuous Integration with TeamCity. You will find course goals, audience fit, delivery options, a hands-on pipeline workflow, and example lab commands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2014\/09\/teamcity-training.png\" alt=\"TeamCity training\" width=\"600\" height=\"400\" \/><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Registration link from the original listing: <a href=\"https:\/\/docs.google.com\/a\/scmgalaxy.com\/forms\/d\/1kZs21fbihV4AK2a530-9rHbCuCJR-lQj1aAmC3C0aKE\/viewform\" target=\"_blank\" rel=\"noopener\">TeamCity training registration form<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What this TeamCity course is designed to achieve<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Based on the original post, the program is aimed at building practical CI\/CD capability rather than only theory.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Introduce core Continuous Integration concepts, benefits, and delivery pipeline thinking.<\/li><li>Set up TeamCity projects, VCS roots, build steps, triggers, and build chains.<\/li><li>Run language-specific builds across Java, .NET, Ruby, mobile, and plugin-based workflows.<\/li><li>Integrate TeamCity with source control, IDEs, notifications, and external tooling.<\/li><li>Prepare teams for production operations: backups, upgrades, external database setup, and diagnostics.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Audience and prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original audience definition is broad but hands-on, with an emphasis on real project delivery.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Primary audience: SCM engineers, build\/release engineers, and developers.<\/li><li>Expected background: working knowledge of software development in any language.<\/li><li>Baseline understanding: Software Development Life Cycle fundamentals.<\/li><li>Training style: practical labs (original post states approximately 80% lab work).<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Delivery model and workshop structure<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The source content mentions intensive 1-day and 2-day workshop formats and also describes the course as modular and customizable for team needs.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Format<\/th><th>Duration in source<\/th><th>Best for<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>On-site workshop<\/td><td>1-day or 2-day<\/td><td>Teams needing rapid CI onboarding<\/td><td>Explicitly described as intensive and practical.<\/td><\/tr><tr><td>Custom modular training<\/td><td>Flexible<\/td><td>Organizations with specific toolchain requirements<\/td><td>Original post states modular and flexible approach.<\/td><\/tr><tr><td>Online\/classroom<\/td><td>Not specified<\/td><td>Distributed learners or mixed cohorts<\/td><td>Mentioned in the page title, but delivery details are limited in body text.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Curriculum roadmap at a glance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original outline spans 12 sections, from CI fundamentals to production-ready TeamCity operations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Phase 1: Foundations and setup<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Continuous Integration principles, practices, and pipeline basics.<\/li><li>TeamCity fundamentals: licensing, agents, build chains, plugins, and dashboard usage.<\/li><li>Installation and initial setup on Windows, macOS, and Linux.<\/li><li>First pipeline: VCS roots, build configurations, triggers, failure conditions, and artifact\/report basics.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Phase 2: Language and platform pipelines<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Java builds with Ant, Maven, and Gradle.<\/li><li>.NET builds with NAnt, MSBuild, NUnit, NuGet, and PowerShell workflows.<\/li><li>Ruby\/Rails pipeline setup with Bundler and Rake.<\/li><li>Mobile and plugin workflows for Android, iOS, Python, and Node-related tooling.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Phase 3: Integrations, scale, and delivery<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>IDE and GitHub integrations, notifications, and project monitoring.<\/li><li>Operational productivity: investigations, templates, meta-runners, cleanup, and priorities.<\/li><li>Continuous Delivery patterns: artifact promotion, environment gates, and deployment permissions.<\/li><li>Production readiness: external database use, backup\/restore, upgrades, and diagnostics.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Hands-on workflow used in labs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The flow below reflects the build-chain and deployment-gate progression described in the course outline.<\/p>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[Developer pushes commit] --> B[TeamCity VCS trigger starts build]\n    B --> C[Compile and run unit tests]\n    C --> D{Build successful}\n    D -- No --> E[Assign investigation and fix]\n    D -- Yes --> F[Publish artifacts]\n    F --> G[Deploy to test environment]\n    G --> H[Run integration tests]\n    H --> I{Release gate approved}\n    I -- No --> E\n    I -- Yes --> J[Promote build to next environment]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">CI server comparison in course context<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The source outline explicitly lists TeamCity and two competitors for comparison: Jenkins and ThoughtWorks Go (GoCD).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>CI server<\/th><th>How it appears in the training outline<\/th><th>What to evaluate during tool selection<\/th><\/tr><\/thead><tbody><tr><td>TeamCity<\/td><td>Primary platform for setup, build chains, integrations, and operations.<\/td><td>Fit for your stack, agent strategy, governance, and deployment model.<\/td><\/tr><tr><td>Jenkins<\/td><td>Presented as a competitor in the comparison section.<\/td><td>Plugin strategy, maintenance overhead, and team operating model.<\/td><\/tr><tr><td>GoCD (ThoughtWorks Go)<\/td><td>Presented as a competitor in the comparison section.<\/td><td>Pipeline modeling approach and compatibility with your release process.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Example lab commands<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">These examples reflect the type of command-line work implied by the syllabus (installation, build execution, and CI feedback).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\"># Example: start and stop TeamCity on Linux<\/span>\ncd \/opt\/TeamCity\/bin\n.\/runAll.sh start\n.\/runAll.sh stop<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php language-bash\"><span class=\"hljs-comment\"># Example: language-specific build commands often used in CI<\/span>\nmvn -B clean test\ngradle clean build\ndotnet restore\ndotnet test<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css language-bash\"># <span class=\"hljs-selector-tag\">Example<\/span>: <span class=\"hljs-selector-tag\">TeamCity<\/span> <span class=\"hljs-selector-tag\">service<\/span> <span class=\"hljs-selector-tag\">messages<\/span> <span class=\"hljs-selector-tag\">from<\/span> <span class=\"hljs-selector-tag\">build<\/span> <span class=\"hljs-selector-tag\">scripts<\/span>\n<span class=\"hljs-selector-tag\">echo<\/span> \"#<span class=\"hljs-selector-id\">#teamcity<\/span><span class=\"hljs-selector-attr\">&#91;setParameter name=<span class=\"hljs-string\">'env.DEPLOY_ENV'<\/span> value=<span class=\"hljs-string\">'staging'<\/span>]<\/span>\"\n<span class=\"hljs-selector-tag\">echo<\/span> \"#<span class=\"hljs-selector-id\">#teamcity<\/span><span class=\"hljs-selector-attr\">&#91;buildNumber <span class=\"hljs-string\">'1.0.%build.counter%'<\/span>]<\/span>\"<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Original contact and location details<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From the original listing: contact <a href=\"mailto:info@scmGalaxy.com\">info@scmGalaxy.com<\/a>, phone <strong>+91 700 483 5930<\/strong>, Skype <strong>scmGalaxy<\/strong>. Cities mentioned include Bangalore, Delhi, Pune, Mumbai, and Hyderabad. For enrollment, use the linked registration form above.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common pitfalls when planning TeamCity training<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Choosing a course before confirming whether you need team-level onboarding or individual upskilling.<\/li><li>Skipping prerequisite checks for participants with limited SDLC or scripting exposure.<\/li><li>Over-focusing on build success while under-investing in artifact promotion and environment gates.<\/li><li>Not validating how CI server choice aligns with your long-term operations and support model.<\/li><li>Using an old syllabus without checking current TeamCity and ecosystem changes.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A structured, practical rewrite of the original TeamCity training post for DevOps and build\/release teams. Use it to evaluate course scope, delivery model, lab depth, and tooling coverage before enrolling.<\/p>\n","protected":false},"author":1,"featured_media":3560,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[8],"tags":[99,884,1858,883,100,97,1682,1748,94,1857,1673,144,1855,1856,1854,105,96,1749,98],"class_list":["post-29","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-training","tag-bangalore","tag-classroom","tag-classroom-teamcity-training","tag-course","tag-hyderabad","tag-india","tag-mumbai","tag-netherlands","tag-online","tag-online-teamcity-training","tag-pune","tag-teamcity","tag-teamcity-course","tag-teamcity-trainer","tag-teamcity-training","tag-trainer","tag-training","tag-uk","tag-usa"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/29","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/29\/revisions"}],"predecessor-version":[{"id":79249,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/29\/revisions\/79249"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3560"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=29"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=29"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}