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.
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.