• 01634 540 911
  • This email address is being protected from spambots. You need JavaScript enabled to view it.
  • Mon-Fri 9am-5.30pm
Continuous Integration and Delivery (CI/CD)

Continuous Integration and Delivery (CI/CD)

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

Jenkins

Jenkins - open source CI/CD technology

Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, TD/OMS, ClearCase and RTC, and can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands. The creator of Jenkins is Kohsuke Kawaguchi. Released under the MIT License, Jenkins is free software.

Builds can be triggered by various means, for example by commit in a version control system, by scheduling via a cron-like mechanism and by requesting a specific build URL. It can also be triggered after the other builds in the queue have completed. Jenkins functionality can be extended with plugins.

 

The Jenkins project was originally called Hudson, and was renamed after a dispute with Oracle, and its fork, Hudson, continued to be developed by Oracle for a time before being donated to the Eclipse Foundation. Hudson is no longer maintained and was announced as obsolete in February 2017.

Teamcity

Teamcity - commercial CI/CD tool, widely used by Windows based customers

 

TeamCity is a Java-based build management and continuous integration server from JetBrains. It was first released on October 2, 2006. TeamCity is commercial software and licensed under a proprietary license. A Freemium license for up to 100 build configurations and 3 free Build Agent licenses is available. Open Source projects can request a free license.

 

Maven

Maven - is a build automation tool used primarily for Java projects.

 

Maven addresses two aspects of building software: first, it describes how software is built, and second, it describes its dependencies. Unlike earlier tools like Apache Ant, it uses conventions for the build procedure, and only exceptions need to be written down. An XML file describes the software project being built, its dependencies on other external modules and components, the build order, directories, and required plug-ins. It comes with pre-defined targets for performing certain well-defined tasks such as compilation of code and its packaging.

 

Maven dynamically downloads Java libraries and Maven plug-ins from one or more repositories such as the Maven 2 Central Repository, and stores them in a local cache. This local cache of downloaded artifacts can also be updated with artifacts created by local projects. Public repositories can also be updated.

 

Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. The Maven project is hosted by the Apache Software Foundation, where it was formerly part of the Jakarta Project.

 

Maven is built using a plugin-based architecture that allows it to make use of any application controllable through standard input. Theoretically, this would allow anyone to write plugins to interface with build tools (compilers, unit test tools, etc.) for any other language. In reality, support and use for languages other than Java has been minimal. A plugin for the .NET framework exists and is maintained, and a C/C++ native plugin is maintained for Maven 2.

Alternative technologies like Gradle and sbt as build tools do not rely on XML, but keep the key concepts Maven introduced. With Apache Ivy, a dedicated dependency manager was developed as well that also supports Maven repositories.


Sticky Banners phone

01634 540 911
©2020 Gotek Ltd. All Rights Reserved. Company number 12491443 Powered by GOTEK