Skip to content

Latest commit

 

History

History
66 lines (39 loc) · 2.88 KB

README.md

File metadata and controls

66 lines (39 loc) · 2.88 KB

Production

This is the space for production code: tested Python libs, jobs and services.

Develop

Requirements

  • Python 3, Docker

Docker Build

Execute this command in the project root folder to build this project and the respective docker container:

python build.py

This script compiles the project, assembles the various JAR artifacts (executable service, client, sources) and builds a docker container with the assembled executable jar. For additional script options:

python build.py --help

To only compile the Java artifacts (for development):

mvn clean package

Deploy

Execute this command in the project root folder to deploy all assembled Java artifacts to the configured maven repository and push all docker containers to the configured docker registry:

python build.py --deploy --version={MAJOR.MINOR.PATCH-TAG}

For deployment, the version has to be provided. The version format should follow the Semantic Versioning standard (MAJOR.MINOR.PATCH). For additional script options:

python build.py --help

Configure Docker Repository

docker login docker-repository

Dev Guidelines

Code Style

Our coding guideline for source code in the Java is based on the Google Java Style Guide. For any code-style related questions, please refer to the linked guide.

We also have predefined code formatting settings for IntelliJ which can be downloaded here (add .jar as extension as OneDrive doesn’t allow uploading jar files).

Git Workflow

Our git branching for all repositories is based on the Git-Flow standard. Please go trough the linked introduction, and visit here and here for more information.

Build Versioning

Our build versioning for all projects is based on the Semantic Versioning specification. For any versioning-related questions, please refer to the linked guide. In additon to the MAJOR.MINOR.PATCH format, a SNAPSHOT tag will be attached to the version for all development builds (based on the Maven versioning standard). As define in Git-Flow, the build version is also used as tag for releases on the master branch.