Skip to content
Snippets Groups Projects
user avatar
Piotr Gawron authored
6ccf2fdf
History

build status coverage report

For users

Documentation for minerva can be found here: https://minerva.pages.uni.lu/doc/

For developers

Installation

After cloning repo you need to install following tools:

  • postgresql (>=9.1)
  • tomcat (tested on tomcat7, tomcat8)
  • Java8 - works on OpenJDK 8, Oracle Java 8, OpenJDK 11
  • maven
  • ant
  • node.js + npm

You need to create user and database:

username: map_viewer
password: 123qweasdzxc
dbname: map_viewer

If you want to use different credentials or your database in not hosted locally you can configure it by creating file /etc/minerva/db.properties. Template of the file can be found here: https://git-r3lab.uni.lu/minerva/core/blob/master/persist/src/main/resources/db.properties

Database schema is managed automatically by flyway, so there is no need to populate the database with anything.

Now your dev environment is configured and ready to use. To test it you can run unit tests:

  • back-end - go to one of the Java modules (ie 'persist') and call mvn test:
cd ~/workspace/minerva/commons/
mvn test
  • front-end - go to module with front-end, install all npm dependencies and run tests:
cd ~/workspace/minerva/frontend-js/
npm install
npm test

Build

To build *.war file that can be deployed on tomcat you need to call ant maven-build task:

cd ~/workspace/minerva/
ant maven-build

This will create ~/workspace/minerva/web/target/web-1.0.war file which can be deployed on tomcat:

cp ~/workspace/minerva/web/target/web-1.0.war $CATALINA_HOME/webapps/minerva.war

After starting tomcat you can access minerva using http://localhost:8080/minerva/. Default credentials are:

login: admin
password: admin

Deployment and release

Before making new release update changelog file.

Debian packages

When all the changes are ready tag commit and push it to the repository. Gitlab ci will execute unit tests and prepare distribution files that can be released. For now we release minerva using debian repository. Therefore gitlab ci creates a deb package (for instance: https://git-r3lab.uni.lu/minerva/core/-/jobs/29918). This package should be uploaded to our repository:

echo 'PUT minerva_12.0.3_amd64.deb'| sftp -P 8022 repo-r3lab.lcsb.uni.lu
ssh repo 'sudo reprepro -b /var/www/html/debian includedeb test minerva_12.0.3_amd64.deb'

Remember to use proper repository:

  • stable - for production ready debian packages
  • test - for packages that are ready to test and probably will be moved to stable soon
  • experimental - for packages that might crash, can be unstable are created during development process (anything that has alpha, beta in the version number should be put here)

Moreover we store all debian packages on webdav:

echo 'put minerva_12.0.3_amd64.deb' | cadaver https://webdav-r3lab.uni.lu/public/minerva/

Docker image

Update minerva docker repository.

VirtualBox images

We provide also VirtualBox images with minerva installed on it. Just create a new debian virtual box image and upload it to webdav:

echo 'put minerva-12.0.1_release.ova' | cadaver https://webdav-r3lab.uni.lu/public/minerva/

Image should have root account with 123qweasdzxc password. It should also expose port 8080 on the host.