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
<vincent(a)massol.net> 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/DockerJenkinsConfigurationTes…
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