Build Process

Build plugins

Reckon plugin

We use the reckon plugin for gradle to control our project version. The three scopes are major, minor and patch. The three stages are beta, rc and final. These are configured in the build.gradle file and in the jenkinsfile as parameters.

If you want to do a manual build and create a git tag, e.g. use the command ./gradlew reckonTagCreate -Preckon.scope=major -Preckon.stage=final to build the next major version and tag.

You can find additional information and documentation under reckon plugin .

Docker plugin

To create and push the docker images we use the docker gradle plugin. During the build process we push up to four different tags for an image.

These are the following tags:
  • develop: this tag marks the image associated with the latest develop commit

  • latest: this tag marks the image associated with the latest released version

  • <major>.<minor>-latest: this tag marks the image associated with the latest released version in its major and minor range

  • <major>.<minor>.<patch>-<commitId>: this tag marks the image associated with the latest commit on any branch

You can find additional information and documentation under gradle docker plugin

Pipeline behaviour

To trigger a release build we currently use a parameterized trigger in the jenkins ui. You can manually start it and choose the scope and stage of the build. These parameters will then be used by the jenkins stages to create all steps necessary to create a release version, create a new git tag, push the git tag and push the docker tags accordingly.

Build tests

If you want to create more tests for your build logic you can find some example tests in the io/ox/proxy/build/test directory.