Migrate from TeamCity
On This Page
This document provides an overview of how to migrate from TeamCity to CircleCI.
CircleCI has various differences in setup and configuration from TeamCity. For the best experience of trying CircleCI, we recommend getting started with the following:
Read (or at least browse) this document to solidify conceptual differences.
Quickly build and run a simple Hello World job in any repository. This configuration demonstrates the simplicity of our YAML setup, and it showcases how to define both an execution environment and the steps to run within it. All jobs on CircleCI share this format.
Once you understand the config, modify the executor and the individual steps to meet your needs. For example, a Rails project may use a Ruby container image and run
bundlercommands. Consult our Examples and Guides Overview for various examples in different languages and frameworks.
After finishing one job, setup your other jobs on CircleCI and then configure a workflow. This would essentially migrate your Build Chain.
Next, optimize your jobs with advanced features to see how much faster your builds could run on the CircleCI platform.
Throughout this process, consult the Configuration Reference for a list of all available configuration on the CircleCI platform.
Why migrate to CircleCI?
CircleCI is a modern CI/CD tool aimed at performance and developer productivity. With a flexible system for configuration, you can define complex workflows and jobs for your application’s specific needs.
- Configuration As Code
The majority of CircleCI’s configuration is done via YAML. It is easy to maintain and trivial to learn, and your CI/CD pipeline can be tracked and versioned like the rest of your source code.
- Auto-Scaling Architecture
All execution environments are dynamically created according to your config and terminated on completion of tasks. You can run one - or hundreds - of jobs concurrently without any hassle or overhead.
CircleCI is vendor and tool-agnostic. Our config allows integration with any platform or cloud provider that has an API. See our integrations page for existing partnerships. Dependencies and libraries can be installed ad-hoc in your job, and we offer dependency caching to speed up subsequent builds.
- Shareable, Reusable Configuration
Steps, execution environments, and jobs can be templated, parameterized, shared, and reused across different projects and teams using CircleCI orbs. Take advantage of the numerous integrations and orbs already written for you.
CircleCI and TeamCity share the concept of projects.
TeamCity’s Build Configurations are equivalent to CircleCI’s jobs, which are atomic elements of work consisting of many steps or commands to achieve a goal (e.g. run unit tests).
TeamCity has traditionally used the UI to configure most builds, with Kotlin Script configuration being a newer, recent feature. CircleCI uses YAML to configure the majority of pipeline functionality.
|TeamCity settings.kts||Equivalent CircleCI config.yml|
|Equivalent CircleCI config.yml|
|TeamCity Build Chain||Equivalent CircleCI Workflow|
|TeamCity Build Chain|
|Equivalent CircleCI Workflow|
TeamCity requires setting up a build agent with the required OS and tools installed and a corresponding Build Configuration. In CircleCI, all job configurations have an Executor definition, and CircleCI handles spinning up said agents for you. See our list of available executors.
version: 2.1 jobs: my-mac-job: # Executor definition macos: xcode: "12.5.1" # Steps definition steps: - checkout # ...etc.
In TeamCity, build steps are chosen from a list of defined Runner Types (e.g. Visual Studio, Maven, Gradle, etc.). On CircleCI, step definition can flexibly take any commands you would run in a Terminal or Command Prompt.
Subsequently, this flexibility allows steps to be adapted to any language, framework, and tool. For example, a Rails project may use a Ruby container and run
bundler commands. A Node.js project may use a node container and
npm commands. Visit our Examples and Guides Overview for various language and framework examples.
|TeamCity Steps||Equivalent CircleCI Steps|
|Equivalent CircleCI Steps|
CircleCI’s equivalent of Meta-Runners and Build Templates is orbs, which are templatizable, shareable configuration. Read more about them in our orbs documentation.
For larger and more complex builds, we recommend moving over in phases until you get comfortable with the CircleCI platform. We recommend this order:
Help make this document better
This guide, as well as the rest of our docs, are open source and available on GitHub. We welcome your contributions.
- Suggest an edit to this page (please read the contributing guidefirst).
- To report a problem in the documentation, or to submit feedback and comments, please open an issue on GitHub.
- CircleCI is always seeking ways to improve your experience with our platform. If you would like to share feedback, please join our research community.
Our support engineers are available to help with service issues, billing, or account related questions, and can help troubleshoot build configurations. Contact our support engineers by opening a ticket.
You can also visit our support site to find support articles, community forums, and training resources.
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.