TeamCity and Plastic SCM: Full-Blown Automation to Deliver Faster and Better

This guest post is brought to you by Jordi Mon Companys, the Product Manager of Plastic SCM.

plasticscm_logoPlastic SCM is a full version control stack for all things DevOps. It’s an enterprise-ready, DVCS and CVCS for teams any size with built-in branching and merging engines to enable collaboration, pipeline automation, and project shipping. The perfect tool to rapidly deliver well-designed software.

Continuous Delivery is one of the most effective approaches to developing high-quality software, and TeamCity’s success is a clear example. For a company that builds a version control system like we do, thinking of CI as a process to develop software may sound weird at first. Initially, we could argue that TeamCity belongs to the deploy part of the software lifecycle. But the reality is that advances in the Ops side of this lifecycle have influenced greatly how the initial phases of a software project are conceived, and therefore its tooling. As a company devoted to making the life of our users easier, Plastic SCM is providing the means for its clients to use TeamCity seamlessly.

Códice Software products and JetBrains products have a long history of integrations. Both companies have always understood the value of providing tight-knit connectors that allow users to deliver quality software to their customers. Plastic SCM is Códice Software’s flagship product: a full version control stack with cross-platform GUIs, branching and merging superpowers and more. It solves many software development riddles in a comprehensive and versatile way. TeamCity stands on the Ops side of this software lifecycle, making both tools a perfect combination for modern day DevOps.

Alpha and Omega: from source control to CI

The main outcome of this DevOps setup is that TeamCity now acts as an integrator, taking an active role in the development and automation of the merge process. Getting better and faster to the market than your competitors is by definition good. Reacting to business needs and change is also part of this approach. Thus, having source control connected to a powerful CI system is the best choice for your pipeline to fulfill these and other goals.

Connecting TeamCity and Plastic is easy. Plastic SCM developed a plugin available here (Editor’s note: the plugin comes bundled with Plastic SCM and can be installed during the setup process). Once the VCS Root is configured in the Edit Build Configuration panel, the following four steps should be performed:

1. Select Plastic SCM as your version control

choose-vcs-root2. Choose the correct server and repo and select the branches TeamCity will monitor

server-and-branches3. Attribute new branch filtering

branch-filtering

A step by step branch per task example with auto merging

This is how a development cycle looks with TeamCity merging branches to main automatically when a certain attribute is set.

Plastic – Create new branch

First, a new branch named DTC-14 is created to fix task 14 in the associated issue tracker.

createbranch

Plastic – Apply attribute

Next, work is done on the branch and a few changes are made to get the task fixed. Once done, mark the branch as resolved by setting a status attribute to it.resolved

TeamCity – Monitoring

TeamCity is continuously monitoring the repo, so DTC-14 is detected and since it matches the filter conditions, it is selected to be built and merged.

DTC14Building

TeamCity – Status

Everything went fine for task branch DTC-14, and the TeamCity status reflects it.

DTC14Built

Plastic – Branch merged to main

Once the build is ready, Plastic SCM’s plugin for TeamCity triggers the merge to main. DTC-14 is now merged to main, and its status attribute was updated to merged. All this has been performed by TeamCity.merged

 

With this setup, TeamCity will act as a mergebot taking an active role in the development and automation of the merge process. From then on, TeamCity will run builds and tests. If no conflicts arise, it is merged to main and a build is released promptly.

More than technicalities: high-performance team culture

Eventually, our clients have experienced the freedom to experiment with ideas and products. This goes beyond tooling: companies that have the appropriate toolset can focus on change, efficiency and software quality which is, after all, what drives value to their customers and growth to their company.

In the end, Plastic SCM and TeamCity’s integration enables the worlds of software development, deployment, product management, QA and so on to converge and deliver its best. These integrations are providing the underlying toolset of the best software development methodologies.

This entry was posted in Guest post, Partner and tagged , , . Bookmark the permalink.

3 Responses to TeamCity and Plastic SCM: Full-Blown Automation to Deliver Faster and Better

  1. Stuart says:

    Plastic is ok, but until git support is 100% then you can’t properly integrate with nearly any other useful software, like a decent code review tool.

  2. Carlos says:

    Plastic has a feature called GitServer:
    https://www.plasticscm.com/gitserver

    Every Plastic SCM server can now serve repositories using the Git protocol (git and http supported).

    This means that every Git client can push/pull to a Plastic SCM server directly.

    Any tool in the Git ecosystem can now be directly used to connect to Plastic SCM using their native Git functionalities. Teams on Plastic can now benefit from all the DevOps, CI, code review… integrations developed for Git.

    Or are you still missing something that GitServer feature doesn’t include?

    • Stuart says:

      Yes, but the last time I tried GitServer, it didn’t support populating the username and email address for the commit in the Git repo, which is not very helpful when matching up usernames in external systems. Has that now changed?

Leave a Reply

Your email address will not be published. Required fields are marked *