CI Pipeline - AmyAssist/Amy GitHub Wiki

Our CI Pipeline is hosted on Travis. Travis is a continuous integration platform and offers free CI for Open Source projects.

What is a CI Pipeline?

Travis Setup

Travis is configured with .travis.yml, the configuration file is in the GitHub repository. We use the GitHub integration of Travis to trigger the Pipeline for pushes, Pull Requests and tags.

Pipeline

There are 4 different Pipelines Release, Dev, Pull Request and Default. This Pipelines gets triggert on different events in GitHub.

Release

Trigger: git tag(starting with v) on the master branch

stage: deploy

Description: The Release Pipeline runs for a new releases of Amy(new version, not -SNAPSHOT). It is triggert by tagging the commit with the new version, e.g. git tag v1.0.0. This Pipeline build the hole project and deploy it to maven central. Also the fat jars of the master node and the plugins are uploaded to a GitHub Release.

Dev

Trigger: git push(merging of PR) on the dev branch

stage: dev deploy

Description: Deploy the license information to github-pages. Deploy the current snapshot version to oss.sonatype.org. Build and deploy the docker image to Docker Hub.

Pull Request

Trigger: git push on branch with open Pull Request in dev

stage: test and code quality

Description: Runs the Systemtests and shows the result in the Pull Request. A Pull Request can only be merged if all tests pass.

Default

Trigger: git push on any branch

stage: test and code quality

Description: Builds the project and runs the JUnit tests with coverage. Sonarcloud analyzes the code and create a report which is deployed to sonarcloud.io. If there is a open Pull Request sonarcloud also reports the result to it.