Setting up VSTS for IBM RTC Source Control Repositories
Rational Team Concert (RTC) is an application life cycle Management (ALM) tool. Although it’s usage is declining according to google trends, there are many JAVA development teams particularly in US and India that are using RTC based source control repositories . This document is aimed towards developers, project leader and architects who are looking to use the cloud based ALM suites with RTC based source control repository.
Trend is recent years is to use cloud hosted source control repositories such as Github, CloudForge, VSTS, etc. However, there are many teams which are still on RTC. VSTS (Visual Studio Team Services) can be an excellent complimentary tool which brings benefits from both the worlds. Most of the cross-platform development teams (Including Java) tend to think that VSTS is all about Visual Studio, a popular IDE (Integrated Development Environment) used by .Net developers. However, VSTS is a separate offering than the Visual Studio.
So while discussion on moving source code repository to cloud is going on, Java development teams can leverage following VSTS capabilities while their source code still resides in RTC.
- Cross Platform Builds: VSTS offers to build Java code using popular tools such as Ant, Maven and Gradle.
- Mobile Build: Along with web applications, VSTS offers to build mobile applications targeted towards iOS, Android and Windows platforms.
- Automated Testing: VSTS can execute unit/integration/UI automation tests and generate comprehensive reporting on code coverage, test failures, etc. using JaCoCo and Cobertura.
- Code quality checks: Perform static code analysis using PMD, CheckStyle and SonarQube.
- Performance Testing: VSTS can simulate performance testing using JMeter.
- Release Management: Controlled deployment of binaries to targeted environment including rollback.
VSTS is a PaaS (Platform-as-a-service) offering. Development team doesn’t have to be responsible for managing Build Servers, installation of tools and framework, patching and upgrades, DR and security hassles.
Let’s turn back attention to RTC.
RTC to Git
RTC is a distributed source control system. Although, conceptually it is similar to Subversion or Git, it offers a lot of other capabilities. There is a good comparison between them here.
A lot of Java development teams have started to move over to Git. Primary reasons for this are discussed here.
There are 2 ways to move to Git from RTC.
- Migration: If development is in early stage and if codebase size is small, many development teams simply migrate to Git implementation. Tools such as available here, greatly simplifies the experience.
- Integration: If for some reason, you still want to continue with RTC then its Git integration services can be leveraged. RTC team has published guidance on this topic here. In this option, code remains inside RTC. However, it now can support Git functionality such as cloning, branching, commit, pull/push requests, etc.
Using VSTS with public Git endpoint
Once you have got Git integrated with RTC either via migration or integration approach, it’s very straightforward to start using VSTS from thereon.
You can pick any of your favorite tool to do a build. You can select from a plethora of services such as Web builds, mobile build and even Micro services builds. Shown below is a picture of options you get when defining a new Build definition in VSTS (In the VSTS portal, click “Build” Menu and then “New definition” button
If your Git repository is publicly available such as on Github or CloudForge, you can choose 1 of the following 2 options. It is simply supplying your Git repos HTTP or SSH endpoints to VSTS’s build services.
Shown below is screen that you come to when you click “Next” on the previous screen.
Using VSTS with private Git endpoint
If you decide to host your Git repository within enterprise or on-premise, you’ll need to perform following additional steps.
FTP upload task
This is an additional build task which will enable to copy files from your local Git repo to VSTS. You can add FTP upload task by clicking the “Add Build Step” link in the build definition.
When you click “Manage” link, you are navigated to following page. On this page, you click “New Service Endpoint” and the select “External Git” as an option.
In the dialogue box that will appear provide details of your Git repo.
Ensure that server hosting Git repo can communicate over HTTP with outside world. If it is behind proxy or firewall, you add necessary exception policy.
Conclusion
With VSTS, Java development teams can take advantage of its powerful services with source control repository either hosted on premise or in cloud. Below is the diagram that highlights major services that Java development teams can take advantage of in VSTS.
References VSTS for Java Build Java App with Maven TEE (Team Explorer Everywhere) for Java End-to-end devops demo on Java