Skip to content

Continuous Integration

Gabor Szarnyas edited this page Sep 16, 2019 · 10 revisions

Build tools

Building a software consists of various steps, often including:

  • compiling computer source code into binary code,
  • packaging binary code,
  • running automated tests,
  • deploying to production systems,
  • creating documentation and/or release notes.

As building a large software product is a complex task, all popular programming languages have build automation tools. One of the most well-known build tools is GNU Make, a flexible application primarily used for compiling C/C++ code. (However, Make is flexible enough for building any source code, including LaTeX documents.)

Gradle

During the course, we will use Gradle, a build automation tool. Gradle has a detailed user manual but you'll only need the most basic features for this lab.

Alternatives

Gradle's main competitors are Apache Ant, Apache Maven and SBT. Building a simple project is quite straightforward with all modern build tools, but for more complicated, you have to factor a lot of requirements: support for different languages (Scala, Kotlin, Xtend), platforms (OSGi), IDE integration and so on.

Continuous Integration (CI)

During this course, we will use GitHub for version control and the commercial version of Travis CI for continuous integration. Note that the commercial version if available at travis-ci.com instead of travis-ci.org.

Further reading