Read me if you don't know what Axon.ivy (Ivy) is.
Motivation
- Ivy projects are designed to be built on a continuous integration (CI) server like Jenkins- Today, Bitbucket supports for CI with Bitbucket Pipelines
- We're using Bitbucket. Then, why not? It must be very cool and convenient for us if we can centralize our CI and VCS (version control system) tools in one place.
Here is an approach
We have to use a maven plugin called project-build-plugin to build ivy projects. This plugin requires an instance of Ivy engine during building time.
Bitbucket Pipelines allows us to specify our own docker image as a build environment. What we need to do is to prepare our docker image with needed stuffs such as JDK, Maven, Ivy engine, etc.
Step 1. Prepare Docker images
For testing purpose, I already created two docker images: Maven and Axon.ivy engine. They are now available on Docker HubThis image for Maven using Oracle JDK 8
This image for Axon.ivy Engine 7.0.1
Step 2. Configure Maven plugin at pom.xml
We need is define path to Ivy engine within the docker image.Step 3. Enable and Configure BitBucket Pipelines at bitbucket-pipelines.yml
Specify our docker image that we defined above.Have fun
This is my result from Bitbucket Pipelines. ;)
References
[1]. https://www.youtube.com/watch?v=5mtxVkZbJcg&list=PLzvRQMJ9HDiT-KJHqyY-79dpmIo9lrMcy
[2]. https://runnable.com/docker/java/dockerize-your-java-application
[3]. https://answers.axonivy.com/questions/2281/maven-complete-setup-for-build
[4]. https://answers.axonivy.com/questions/2388/how-to-start-an-axon-ivy-project-in-a-docker-container
[5]. https://github.com/dgauch/docker-axonivy-engine
[6]. https://hub.docker.com/r/dgauch/axonivy-engine/
[7]. https://axonivy.github.io/project-build-plugin/release/7.0/index.html
[8]. https://developer.axonivy.com/doc/latest/DesignerGuideHtml/ivy.concepts.html#ivy-ci