TeamCity Training teaches all that is required how to set up a build server for CI and create build scripts using MSBuild to manage the overall build process. It is a powerful continuous integration that can be excelled out of the box.
TeamCity is a Java-based build management and continuous integration server from JetBrains. Continuous Integration is a fundamental pillar of running an Agile project. Knowing whether the latest checkins make or break the project and being able to fix mistakes quickly is important to reduce costs and avoid problems in the long run. In addition, with the recent popularity of continuous delivery and continuous deployment, it is becoming even more common to ship fixes and features to customers more quickly. Different aspects of a build pipeline are explored, including code compilation, testing, coverage, static code analysis, packaging, and deployment. This course is appropriate for developers new to the practice of continuous integration.
TeamCity Training Overview
Our course curriculum is designed with a view to enable trainees with the sufficient knowledge on the fundamentals of TeamCity. In the beginning, learn about Installing and running TeamCity. In further sections, have a brief overview of how TeamCity is managed for Java projects, .NET projects, Ruby projects and other methodologies. In the final module, learn to make master to make TeamCity production ready.
TeamCity Training Curriculum
curriculum_moduleIntroduction
1. Introduction to Continuous Integration
Practices
Benefits
Continuous deployment and Continuous Delivery
The build pipeline
2. 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
3. TeamCity and its competitors
Jenkins
ThoughtWorks’ Go
4. Summary
curriculum_moduleInstallation
1. Installing on Windows
Installing the server and the default agent
Installing additional agents
2. Installation on Mac OS X
Running the TeamCity server and the default agent
Setting up the TeamCity server as a daemon
Installing additional agents
3. Installation on Linux
Running the server and the default agent
Running the TeamCity server as a daemon
Installing additional agents
4. Summary
curriculum_moduleGetting Your CI Up and Running
1. Introducing version control systems
Centralized versus distributed VCSs
VCSs and CI
VCS used in this book
2. Setting up CI
1. The sample project
2. Creating a project in TeamCity
Subprojects
3. 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
4. Build chains
1. Deploying to Heroku
2. Adding functional tests
Parameters and build parameters
3. Setting up the build chain
Snapshot dependencies
The Finish build trigger
The Build chain view
5. Fine-tuning our setup
1. Adding coverage and unit test reports
Publishing reports as artifacts
XML report processing
Report tabs
Build and project statistics
Shared resources
Agent Requirements
3. Summary
curriculum_moduleTeamCity for Java Projects
1. 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
2. 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
3. Using Gradle with TeamCity
Installing Gradle
Building with Gradle on TeamCity
4. Introducing database migration tools
5. Summary
curriculum_moduleTeamCity for .NET Projects
1. Getting started with NAnt on TeamCity
Installing NAnt
Building NAnt with NAnt
Building on TeamCity
Adding NUnit report processing
Configuring agent requirements
2. 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
3. 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
4. Introducing PowerShell
PowerShell-based build tools
PowerShell build runner in TeamCity
5. Database migrations with .NET
6. Summary
curriculum_moduleTeamCity for Ruby Projects
1. 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
2. Summary
curriculum_moduleTeamCity for Mobile and Other Technologies
1. CI for Android projects
Generating the APK
Running Calabash tests
2. Building iOS projects on TeamCity
3. Installing TeamCity plugins
Installing the Python runner plugin
Building with the Python build runner
Introduction to TeamCity.Node plugin
4. Summary
curriculum_moduleIntegration with Other Tools
1. 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
2. GitHub integrations
GitHub webhooks and services
Using the TeamCity.GitHub plugin
Support for pull requests
Integrating with GitHub issue tracker
3. Build monitors
Team Piazza
Project Monitor
Build lights
4. Notifications
5. Summary
curriculum_moduleTeamCity for a Member of the Team
1. Managing projects of interest
Hiding projects
Hiding build configurations
2. Navigating across projects
3. Investigating investigations
Assigning investigations
Viewing active investigations
Managing current and muted problems
4. TeamCity universal search
5. Actions on build configurations
Pausing triggers in a build configuration
Checking for pending changes
Enforcing clean checkout
6. Summary
curriculum_moduleTaking It a Level Up
1. Build configuration templates
Creating templates from scratch
Creating build configurations from the template
Creating templates from existing build configurations
2. Going meta with Meta-Runners
Using Meta-Runners
3. Build result actions
Commenting on build results
Tagging build results
Pinning build results
Promoting builds
Marking the build as successful or failed
Removing builds
4. Build history cleanup
Cleanup rules
Archiving projects
5. Configuring build priorities
6. Interacting with TeamCity from build scripts
Service messages
Creating teamcity-info.xml
7. Summary
curriculum_moduleBeyond CI – Continuous Delivery
1. What is Continuous Delivery?
2. Why Continuous Delivery?
3. The deployment pipeline
4. 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
5. Summary
curriculum_moduleMaking It Production Ready
1. Using TeamCity with an external database
Configuring PostgreSQL as an external database
Migrating from one database to another
2. Backup and restore
Taking backups from the server UI
Backing up and restoring data using the maintainDB tool
A manual backup
3. Handling upgrades
Updating a server installed via an archive
Updating TeamCity using the Windows installer
Updating the agents
4. Monitoring resource usage, performance, and logs
Disk space usage
TeamCity server diagnostics
5. Tweaking the TeamCity JVM
6. Summary