Thanks to the release of a build template from Microsoft Open Technologies, Inc. (MS Open Tech), it is now possible to use the popular enterprise automation tool, Gradle, alongside Team Foundation Server (TFS). This new template allows TFS users to leverage Gradle as a build tool, as well as to use Gradle to enable continuous deployment of Microsoft Azure cloud services for both Linux and Windows.
Gradle is a build automation tool that has been gaining in popularity within Java, Groovy and Scala communities, as it supports the automation of building, testing, publishing and deploying of software packages or other types of projects, such as generated static websites and generated documentation. Key features of Gradle include:
- Declarative builds and build-by-convention
Powered by a rich extensible Domain Specific Language (DSL) based on Groovy, Gradle provides a declarative way to describe all kinds of builds. It adopts an approach of providing sensible defaults, requiring users to define any deviation from these defaults. Out of the box, Gradle provides this "build-by-convention" support for Java, Groovy, OSGi, Web and Scala projects.
- Deep API
Gradle provides API hooks across the whole lifecycle of build execution. Thus, you can monitor and customize its configuration and execution behavior in almost any way necessary.
Its design focus on scalability ensures that Gradle can be a valuable productivity tool, regardless of the scale of your project. It is well-suited to any project, from a simple single project build on your laptop to a huge enterprise multi-project build in the cloud. Gradle also models the project relationships within a multi-project build and provides complete or partial builds, including all necessary dependencies. When coupled with Gradle's powerful incremental build feature, this modeling capability promotes efficiency within even the largest of projects.
We know many of you may be eager for documentation about Gradle for TFS. Both Gradle and TFS are well documented. Please see the diagram below for a visual overview of what is needed to get things up and running. We welcome your input as we work to build out a knowledge base on the GitHub page.