TeamCity Training



ABOUT


TeamCity Training at devopsconsulting.in offers an in-depth exploration of TeamCity, a powerful continuous integration and continuous delivery (CI/CD) tool developed by JetBrains. This training program is designed to equip participants with the skills needed to effectively utilize TeamCity for automating and managing their software build and deployment processes. The course covers key aspects of TeamCity, including its setup, configuration, and management of build processes. Participants will learn to create and manage build configurations, integrate TeamCity with version control systems, and implement automated testing and deployment pipelines. The training also includes practical, hands-on exercises that provide real-world experience in using TeamCity to streamline and optimize development workflows.


By the end of the course, attendees will be proficient in leveraging TeamCity’s features to enhance build automation, improve software delivery efficiency, and support robust CI/CD practices within their development teams. "TeamCity" is kind showing in a sequential approach - how to start implementing Continuous Integration - over generic projects and enclosing rich features of the TeamCity as a project gradually evolves


COURSE OBJECTIVES


In this course we will:


  • Learn about CI and why it is important
  • Learn about TeamCity
  • Build an automated CI pipeline with TeamCity
  • Learn how to version control and manage relational database schema
  • Run the CI pipeline to maintain build artifacts
  • Learn how to configure, secure and extend TeamCity
  • Learn how to configure automated build notifications
  • Integrate CI builds with Git repositories hosted in GitHub

What am I going to get from this course?

  • Learn what is continuous integration (CI)
  • Learn why continuous integration is important (especially in fast paced startup environment)
  • Learn how valuable TeamCity skills are
  • Maintain and version control database schema in an automated fashion via RoundHousE
  • Install and configure TeamCity on Windows and Linux platforms
  • Build and automated CI pipeline with TeamCity for .NET and Java platforms
  • Learn how to setup automatic building notifications within Teamcity
  • Integrate CI builds with Git repositories hosted in GitHub​

PRE-REQUISITES


Before participating in TeamCity Training at devopsconsulting.in, attendees should have the following pre-requisites to ensure a productive learning experience:


  • Basic Understanding of CI/CD Concepts: Familiarity with Continuous Integration and Continuous Delivery (CI/CD) principles is essential for understanding how TeamCity facilitates and automates these processes.
  • Experience with Version Control Systems: Knowledge of version control systems like Git or SVN is important for integrating TeamCity with these tools and managing source code effectively.
  • Exposure to Build and Deployment Processes: Prior experience with build and deployment processes will help participants understand how TeamCity automates and optimizes these workflows.
  • Basic Command Line Skills: Proficiency in using command line interfaces, especially in Unix/Linux environments, is useful for managing TeamCity and executing related commands.
  • Familiarity with Scripting Languages: Basic skills in scripting languages, such as Bash or PowerShell, can be beneficial for creating and customizing build scripts and automating tasks within TeamCity.

Classroom Training Pre-requisites Click Here

FEATURES


TEAMCITY TRAINING FLOW


Number of Days - 4
Day - 1

  • Introduction of DevOps Concept and Process
  • Introduction of Source Code Management - Git and Lab
  • Introduction of Source Code Management - Ant and Lab
  • Introduction of Source Code Management - Maven and Lab
  • Introduction of Source Code Management - MSBuild and Lab
  • Introduction of Source Code Management - Gradle and Lab
  • Continous Integrtion and Delivery
  • Team City Installation and Configuration and Lab

Day - 2

  • TeamCity Fundamental and Lab

Day - 3

  • TeamCity Advanced and Lab

Day - 4

  • TeamCity Administrator and Lab

Features

  • 30 Hours instructor led online class
  • Hands on Approach - We emphasize on learning by doing.
  • Life time free re-enrollment to future DevOps courses
  • Life time free access to all learning materials including
  • Class recordings
  • Presentations
  • Sample Code
  • Projects
  • Total Lab Infrasture in cloud and 24x7 available
  • 70% of the class is consist of Lab
  • Each week assignments(total 4) with personal assistance
  • Two real time senario based projects with standard evaluation
  • 24x7 online support to queries during and after the course completion
  • 1 dedicated class for Interview preparations

AGENDA


Introduction to Continuous Integration

  • Practices
  • Benefits
  • Continuous deployment and Continuous Delivery
  • The build pipeline

Introduction to TeamCity

  • Licensing
  • Features
  • First-class support for various technologies
  • Lots of plugins
  • REST API
  • Comprehensive VCS support
  • A nice dashboard UI and build history
  • Ease of setup and comprehensive documentation
  • Build pipeline/chains
  • Agents and build grids
  • IDE integrations
  • TeamCity and its competitors
  • Jenkins
  • ThoughtWorks' Go

Installation

  • Installing on Windows
  • Installing the server and the default agent
  • Installing additional agents
  • Installation on Mac OS X
  • Running the TeamCity server and the default agent
  • Setting up the TeamCity server as a daemon
  • Installing additional agents
  • Installation on Linux
  • Running the server and the default agent
  • Running the TeamCity server as a daemon
  • Installing additional agents
  • Summary

Getting Your CI Up and Running

  • Introducing version control systems
  • Centralized versus distributed VCSs
  • VCSs and CI
  • VCS used in this book
  • Setting up CI
  • The sample project
  • Creating a project in TeamCity
  • Subprojects
  • Adding build configurations
  • VCS roots and VCS settings
  • Introducing the build steps
  • Running our first build
  • Build failure conditions
  • Triggering the build on VCS changes
  • Build chains
  • Deploying to Heroku
  • Adding functional tests
  • Parameters and build parameters
  • Setting up the build chain
  • Snapshot dependencies
  • The Finish build trigger
  • The Build chain view
  • Fine-tuning our setup
  • Adding coverage and unit test reports
  • Publishing reports as artifacts
  • XML report processing
  • Report tabs
  • Build and project statistics
  • Shared resources
  • Agent Requirements
  • Summary

TeamCity for Java Projects

  • Using Ant with TeamCity
  • Installing Ant
  • Building with Ant build files
  • Building with Ant in a build configuration
  • Adding some unit tests
  • Setting up code coverage
  • Build scripts versus TeamCity features
  • System properties and Ant
  • Using Maven with TeamCity
  • Installing Maven
  • Creating a Maven project
  • Introducing the Project Object Model (POM)
  • Building the project
  • Using Maven in a build configuration
  • Setting version number
  • Setting up code coverage for our build
  • Maven on TeamCity, beyond the build runner
  • Creating a Maven build configuration
  • Global Maven settings file
  • Setting up Maven-based triggers
  • Using Gradle with TeamCity
  • Installing Gradle
  • Building with Gradle on TeamCity
  • Introducing database migration tools
  • Summary

TeamCity for .NET Projects

  • Getting started with NAnt on TeamCity
  • Installing NAnt
  • Building NAnt with NAnt
  • Building on TeamCity
  • Adding NUnit report processing
  • Configuring agent requirements
  • Building with MSBuild
  • Installing MSBuild
  • Starting an MSBuild project
  • Building with MSBuild on TeamCity
  • Adding an NUnit build runner
  • Running NUnit tests using NUnit task
  • Running NUnit tests using the task provided by TeamCity
  • Configuring code coverage with MSBuild
  • NuGet and TeamCity
  • Installing the NuGet command-line client
  • Installing NuGet.exe on TeamCity agents
  • TeamCity as a NuGet server
  • NuGet-based build runners
  • NuGet dependency trigger
  • Introducing PowerShell
  • PowerShell-based build tools
  • PowerShell build runner in TeamCity
  • Database migrations with .NET
  • Summary

TeamCity for Ruby Projects

  • Getting started with Rails
  • Managing Ruby versions
  • Introducing Bundler
  • Installing Rails using Bundler
  • Introducing Rake
  • Setting up the build on TeamCity
  • Setting up Ruby interpreter
  • Running Capybara- and Selenium-based feature tests
  • Summary

TeamCity for Mobile and Other Technologies

  • CI for Android projects
  • Generating the APK
  • Running Calabash tests
  • Building iOS projects on TeamCity
  • Installing TeamCity plugins
  • Installing the Python runner plugin
  • Building with the Python build runner
  • Introduction to TeamCity.Node plugin
  • Summary

Integration with Other Tools

  • IDE integrations
  • IntelliJ platform IDEs integration
  • Installing the plugin
  • Configuring notifications
  • Managing projects from the IDE
  • Opening files and patches in IDE
  • Remote Run
  • Visual Studio integrations
  • GitHub integrations
  • GitHub webhooks and services
  • Using the TeamCity.GitHub plugin
  • Support for pull requests
  • Integrating with GitHub issue tracker
  • Build monitors
  • Team Piazza
  • Project Monitor
  • Build lights
  • Notifications
  • Summary

TeamCity for a Member of the Team

  • Managing projects of interest
  • Hiding projects
  • Hiding build configurations
  • Navigating across projects
  • Investigating investigations
  • Assigning investigations
  • Viewing active investigations
  • Managing current and muted problems
  • TeamCity universal search
  • Actions on build configurations
  • Pausing triggers in a build configuration
  • Checking for pending changes
  • Enforcing clean checkout
  • Summary

Taking It a Level Up

  • Build configuration templates
  • Creating templates from scratch
  • Creating build configurations from the template
  • Creating templates from existing build configurations
  • Going meta with Meta-Runners
  • Using Meta-Runners
  • Build result actions
  • Commenting on build results
  • Tagging build results
  • Pinning build results
  • Promoting builds
  • Marking the build as successful or failed
  • Removing builds
  • Build history cleanup
  • Cleanup rules
  • Archiving projects
  • Configuring build priorities
  • Interacting with TeamCity from build scripts
  • Service messages
  • Creating teamcity-info.xml
  • Summary

Beyond CI - Continuous Delivery

  • What is Continuous Delivery
  • Why Continuous Delivery
  • The deployment pipeline
  • Implementing the deployment pipeline in TeamCity
  • Publishing and consuming artifacts
  • Build chain for CI
  • Deploying to environments
  • Environments as gates
  • Identifying the build that is deployed in an environment
  • Deploying any version to an environment
  • Limiting deployment permissions to certain users
  • Passing sensitive information during deployment
  • Feature branching and feature toggling
  • Summary

TeamCity Administration Part - 1

  • Using TeamCity with an external database
  • Configuring PostgreSQL as an external database
  • Migrating from one database to another
  • Backup and restore
  • Taking backups from the server UI
  • Backing up and restoring data using the maintainDB tool
  • A manual backup
  • Handling upgrades
  • Updating a server installed via an archive
  • Updating TeamCity using the Windows installer
  • Updating the agents
  • Monitoring resource usage, performance, and logs
  • Disk space usage
  • TeamCity server diagnostics
  • Tweaking the TeamCity JVM
  • Summary

TeamCity Administration Part - 2

  • TeamCity Configuration and Maintenance
  • Managing Projects and Build Configurations
  • Managing Licenses
  • Integrating TeamCity with Other Tools
  • Managing User Accounts, Groups and Permissions
  • Customizing Notifications
  • Assigning Build Configurations to Specific Build Agents
  • Patterns For Accessing Build Artifacts
  • Mono Support
  • Maven Server-Side Settings
  • Tracking User Actions