Some more info: * The idea is to use 3 images in total: ** one for the Servlet container and xwiki in it ** one for the database (mysql, postgresql, oracle, etc) ** one for running the functional tests, by running maven in it. In this image there will be FF, Chrome and all supported browsers installed. Something similar to https://hub.docker.com/r/khozzy/selenium-java-firefox/. The trick is to map the maven test sources inside the container so that the maven inside the container can see them and execute them :) (by mapping the local maven repo of the container to the local maven repo in the host, see ). Thanks -Vincent
On 29 Dec 2017, at 11:29, Vincent Massol <[email protected]> wrote:
Hi devs,
I wanted to give you some info on what I’m doing for implementing multi environment testing on XWiki.
Initially I thought about this architecture (let’s call it the "running maven inside docker” strategy): http://massol.myxwiki.org/xwiki/bin/view/Blog/DockerJenkinsConfigurationTest...
However after more thinking, I think it’s not the best solution. I’m now exploring the “‘running docker inside maven” strategy which works as follows: The generation of the docker image + the start/stop of the docker containers is done by the maven build itself.
This has the following advantages: * It’s not dependent on the CI system used * It allows the build to be reproduced locally on dev machines (only prerequisite is to have docker installed - note that right now the prerequisite is to have FF installed locally and we would swap this req. in favor of docker) * We’ll generate the official xwiki docker images as part of our build and not anymore as some external build/steps to execute * The build will be done fully with Maven (no more gradle)
FYI, the plugin I’m exploring for this is the fabric8.io one: https://dmp.fabric8.io/#introduction
I’ve started the work locally and I’ll commit once I have something ready enough.
Let me know if you have some opinion or questions about this.
Thanks -Vincent