GoCD, from ThoughtWorks in Chicago, is an application lifecycle management and development tool.
N/A
Gradle Build Tool (Open Source)
Score 9.0 out of 10
N/A
Gradle is an open source build system. Gradle boasts a rich API and mature ecosystem of plugins and integrations to support automation. Users can model, integrate and systematize the delivery of software from end to end.
GoCD is easier to setup, but harder to customize at runtime. There's no way to trigger a pipeline with custom parameters.
Jenkins is more flexible at runtime. You can define multiple user-provided parameters so when user needs to trigger a build, there's a form for him/her to …
I prefer using GoCD compared to Jenkins. The UI makes sense, I like the simplicity to hit the 'Play' button for a straightforward deployment of the 'Play +' if you need to override some settings when deploying whereas Jenkins, you have the whole page for each pipeline. The …
Software Engineering Manager - Edge and Cloud Native Productline
Chose Gradle Build Tool (Open Source)
[Gradle is] a more modern version of open source build tools like Ant and Maven.
Whereas the build config was XML files which were tedious and error
prone, the modern DSL usage of Groovy to write these build files is a
Gradle is good and matches well against market leader Maven with its ease of use, ease of migration from Maven to Gradle and also coding like configuration unlike the XML configuration of Maven
Without the use of Gradle, we have done direct integration with the APIs. This has not worked very well in the case of Android as there are a lot of packaging related actions that Gradle directly takes as part of the plugin. This decision to use Gradle was an easy one.
Maven is a much more mature build tool. The community behind maven plugins has continued to grow over time, and there are several mature products that continue to receive support. Gradle can use some of these features, but appears to be losing steam over time. The effort to …
SBT works fine for Scala but when I tried to use it with Java it was hard to configure and I gave up. Maven is awesome but the pom.xml file tends to be really big which makes it hard to read. Grunt is suitable only for js projects.
I have participated in a variety of build environments, from basic shell scripts, to ant, and to maven. All of these tools have a place, sometimes perhaps in legacy code. But moving forward, I would never go back to other more primitive tools (never say never...). The more I …
Maven is the most popular alternative to Gradle, in my opinion. I think that both have their advantages and disavantages so I would advise people to scan through the documentation and example applications of both tools and choose according to their needs and limitations.
GoCD is easy to set up. So if you just want to get some pipelines up & running quickly, & they're quite stable, or you can have many pipelines for different needs then GoCD is great. Still, if you only want to have a few pipelines, but with the flexibility to run them with different parameters dynamically, then Jenkins is better.
Gradle Build Tool is more suitable with the Java projects. It has helped us to automate the build part of the devops cycle. Its configuration and Groovy script is really easy to understand and can be implemented with ease. It can be used both for automation and manual buids of the projects. Gradle Build Tool is easy to use and easy to integrate.
Pipeline-as-Code works really well. All our pipelines are defined in yml files, which are checked into SCM.
The ability to link multiple pipelines together is really cool. Later pipelines can declare a dependency to pick up the build artifacts of earlier ones.
Agents definition is really great. We can define multiple different kinds of environments to best suit our diverse build systems.
I'd like to see a way to specify how to run only certain tests in parallel, I tried this feature and for tests that involve interaction with SQL Databases sometimes I can't because of deadlocks.
Not sure if there is something else, gradle has been working really good for us and they are adding improvements all the time which is awesome. I used to think the performance is a deal but the latest versions are addressing this issue very well
I have tried to use Gradle for projects several times in the past, but there is just so much work in maintaining the build file that it quickly becomes untenable. I have been using Maven for many years, and even though the build file can be complex, it works without maintenance between releases.
Gradle has been an excellent tool for Android development. It has helped us create multiple versions of the app for different environments. It also takes care of all the packaging needs in the background without having to write all the code related to that. It is a no brainer to use Gradle with Android applications.
I prefer using GoCD compared to Jenkins. The UI makes sense, I like the simplicity to hit the 'Play' button for a straightforward deployment of the 'Play +' if you need to override some settings when deploying whereas Jenkins, you have the whole page for each pipeline. The environment makes sense but can often confuse the user while GoCD simply has a drop-down to select your environment.
[Gradle is] a more modern version of open source build tools like Ant and Maven. Whereas the build config was XML files which were tedious and error prone, the modern DSL usage of Groovy to write these build files is a great advancement. Also these config files can be inherited from top level to each associated project.
Settings.xml need to be backed up periodically. It contains all the settings for your pipelines! We accidentally deleted before and we have to restore and re-create several missing pipelines
More straight forward use of API and allows filtering e.g., pull all pipelines triggered after this date
In a distributed development environment, once we established a strong CI/CD model, Gradle proved to be a great choice to automate the various processes. Gradle also provides much flexibility, which is essential in today's development environment. The important benefit is that the CI/CD engineers can support development's needs quickly and reliably. This in turn supports faster testing and deployment, which generates higher ROI.