Newer
Older
Piotr Gawron
committed
variables:
POSTGRES_DB: map_viewer
POSTGRES_USER: map_viewer
POSTGRES_PASSWORD: "123qweasdzxc"
coverage: '/Statements[:\ ]+(\d+.\d+)\%/'
#xvfb is for X11 connection used by some parts of the java code: https://stackoverflow.com/a/47575851/1127920
Piotr Gawron
committed
- apt-get install -y xvfb
- Xvfb :99 &
- export DISPLAY=:99
- mvn -DskipTests=true clean install -pl commons -am
- mvn test -pl commons
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' commons/target/site/jacoco/jacoco.csv
services:
- postgres:9.6
stage: test
Piotr Gawron
committed
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl annotation -am
- mvn test -pl annotation
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' annotation/target/site/jacoco/jacoco.csv
#xvfb is for X11 connection used by some parts of the java code: https://stackoverflow.com/a/47575851/1127920
- apt-get update
- apt-get install -y xvfb
- Xvfb :99 &
- export DISPLAY=:99
- mvn -DskipTests=true clean install -pl CellDesigner-plugin -am
- mvn test -pl CellDesigner-plugin
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' CellDesigner-plugin/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl converter -am
- mvn test -pl converter
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl converter-graphics -am
- mvn test -pl converter-graphics
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-graphics/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl converter-CellDesigner -am
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-CellDesigner/target/site/jacoco/jacoco.csv
services:
- postgres:9.6
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl converter-SBGNML -am
- mvn test -pl converter-SBGNML
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-SBGNML/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl converter-sbml -am
- mvn test -pl converter-sbml
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' converter-sbml/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl model -am
- mvn test -pl model
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' model/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl model-command -am
- mvn test -pl model-command
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' model-command/target/site/jacoco/jacoco.csv
script:
- mvn -DskipTests=true clean install -pl pathvisio -am
- mvn test -pl pathvisio
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' pathvisio/target/site/jacoco/jacoco.csv
services:
- postgres:9.6
stage: test
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl persist -am
- mvn test -pl persist
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' persist/target/site/jacoco/jacoco.csv
services:
- postgres:9.6
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl reactome -am
- mvn test -pl reactome
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' reactome/target/site/jacoco/jacoco.csv
services:
- postgres:9.6
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl rest-api -am
- mvn test -pl rest-api
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' rest-api/target/site/jacoco/jacoco.csv
services:
- postgres:9.6
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl service -am
- mvn test -pl service
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, "instructions covered"; print 100*covered/instructions,"% covered" }' service/target/site/jacoco/jacoco.csv
paths:
- minerva.war
script:
Piotr Gawron
committed
- apt-get install -y curl gnupg git ant
- curl -sL https://deb.nodesource.com/setup_9.x | bash -
- ant maven-build
- cp web/target/web-1.0.war minerva.war
dependency_conflict_check:
stage: test
script:
- apt-get update
Piotr Gawron
committed
- apt-get install -y curl gnupg git ant
- curl -sL https://deb.nodesource.com/setup_9.x | bash -
- apt-get install -y nodejs
- mvn clean install -DskipTests=true
- set +e
- mvn dependency:tree -Dverbose | grep conflict | cat > conflicts.txt
- set -e
- conflicts=`cat conflicts.txt| wc -l`
- echo Found conflicts $conflicts ':'
- cat conflicts.txt
- test 0 = $conflicts
build_debian_package:
image: debian
only:
- tags
dependencies:
- build_war
artifacts:
paths:
- "debian/*.deb"
script:
- apt-get install -y dh-make build-essential lintian devscripts xsltproc fakeroot xsltproc docbook-xsl
- export DEBFULLNAME="Piotr Gawron"
- export DEBEMAIL="piotr.gawron@uni.lu"
- debian/create-debian-pkg.sh
test_upgrade_debian_package:
image: debian
stage: test
only:
- tags
# we need to run it in privileged mode due to: https://stackoverflow.com/questions/29683231/tomcat7-fail-to-start-inside-ubuntu-docker-container
tags:
- privileged
services:
- name: piotrgawron/debian-repo
alias: debian-repo
dependencies:
- build_debian_package
script:
- apt-get update
- apt-get install -y ssh software-properties-common dirmngr wget curl apt-transport-https
- debian_file=$(ls debian/*.deb)
- version=$(echo $debian_file| cut -f2 -d"_")
- echo "PUT $debian_file /docker/incoming" | sftp -o StrictHostKeyChecking=no user@debian-repo
- ssh root@debian-repo /usr/local/sbin/reprepro-import
- apt-add-repository "deb http://repo-r3lab.uni.lu/debian/ stable main"
- apt-key adv --no-tty --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xcb185f4e31872412
- apt-get update
#hacky way of installing minerva on docker - by default rc-invoke is preventing services changes on docker
- mv /usr/sbin/policy-rc.d /usr/sbin/policy-rc.d.backup
- mv gitlab-ci-policy-rc.d /usr/sbin/policy-rc.d
- apt-get install -y --allow-unauthenticated minerva
#local repository with new version
- apt-add-repository "deb http://debian-repo/ unstable main"
- apt-get update --allow-unauthenticated
- apt-get dist-upgrade -y --allow-unauthenticated
- mv /usr/sbin/policy-rc.d.backup /usr/sbin/policy-rc.d
- service tomcat8 start
#we need to wait a bit for tomcat start
- sleep 15
- wget http://localhost:8080/minerva/
#test if we can login and get configuration using new version
- test 200 = $(curl --write-out %{http_code} --silent --output /dev/null -c cookie.txt http://localhost:8080/minerva/api/doLogin)
- test 200 = $(curl --write-out %{http_code} --silent --output configuration.json --cookie cookie.txt http://localhost:8080/minerva/api/configuration/)
- test 1 = $(cat configuration.json| grep $version | wc -l)
test_install_debian_package:
image: debian
stage: test
only:
- tags
# we need to run it in privileged mode due to: https://stackoverflow.com/questions/29683231/tomcat7-fail-to-start-inside-ubuntu-docker-container
services:
- name: piotrgawron/debian-repo
alias: debian-repo
dependencies:
- build_debian_package
script:
- apt-get update
- apt-get install -y ssh software-properties-common dirmngr wget curl
- debian_file=$(ls debian/*.deb)
- echo "PUT $debian_file /docker/incoming" | sftp -o StrictHostKeyChecking=no user@debian-repo
- ssh root@debian-repo /usr/local/sbin/reprepro-import
- apt-add-repository "deb http://debian-repo/ unstable main"
- apt-get update --allow-unauthenticated
#hacky way of installing minerva on docker - by default rc-invoke is preventing services changes on docker
- mv /usr/sbin/policy-rc.d /usr/sbin/policy-rc.d.backup
- mv gitlab-ci-policy-rc.d /usr/sbin/policy-rc.d
- apt-get install -y --allow-unauthenticated minerva
- mv /usr/sbin/policy-rc.d.backup /usr/sbin/policy-rc.d
- service tomcat8 start
- sleep 15
- wget http://localhost:8080/minerva/
- test 200 = $(curl --write-out %{http_code} --silent --output /dev/null -c cookie.txt http://localhost:8080/minerva/api/doLogin)
- test 200 = $(curl --write-out %{http_code} --silent --output /dev/null --cookie cookie.txt http://localhost:8080/minerva/api/projects/)
tags:
- privileged
artifacts:
paths:
- "rpm/rpmbuildtemp/RPMS/noarch/minerva-*.rpm"
script:
- yum -y install rpmdevtools unzip
- rpm/buildrpm.sh minerva.war
rpmlint:
image: centos:7
stage: test
dependencies:
- build_rpm
tags:
- privileged
script:
- yum -y install rpmlint
- rpmlint rpm/rpmbuildtemp/RPMS/noarch/minerva-*.rpm
test_deploy_with_db_without_superadmin_rights:
image: tomcat:7-jre8
stage: test
services:
- postgres:9.6
dependencies:
- build_war
tags:
- privileged
only:
- tags
script:
- apt-get update
- apt-get install -y postgresql-client
- mkdir /etc/minerva
- echo "database.uri=jdbc:postgresql://postgres:5432/test" > /etc/minerva/db.properties
- echo "database.username=test" >> /etc/minerva/db.properties
- echo "database.password=test" >> /etc/minerva/db.properties
- echo "CREATE DATABASE test;CREATE USER test WITH ENCRYPTED PASSWORD 'test';GRANT ALL PRIVILEGES ON DATABASE test TO test;" >tmp.sql
- PGPASSWORD=$POSTGRES_PASSWORD psql -h postgres -U $POSTGRES_USER $POSTGRES_DB < tmp.sql
- mv minerva.war /usr/local/tomcat/webapps/minerva.war
- /usr/local/tomcat/bin/startup.sh
- sleep 15
- wget http://localhost:8080/minerva/
#test if we can login and list projects
- test 200 = $(curl --write-out %{http_code} --silent --output /dev/null -c cookie.txt http://localhost:8080/minerva/api/doLogin)
- test 200 = $(curl --write-out %{http_code} --silent --output /dev/null --cookie cookie.txt http://localhost:8080/minerva/api/projects/)
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
test_postgres_9_3_compatibility:
image: maven:3.6.0-jdk-8
services:
- postgres:9.3
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl persist -am
- mvn test -pl persist
test_postgres_10_compatibility:
image: maven:3.6.0-jdk-8
services:
- postgres:10
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl persist -am
- mvn test -pl persist
test_postgres_11_compatibility:
image: maven:3.6.0-jdk-8
services:
- postgres:11
stage: test
script:
- mkdir /etc/minerva/
- cp test-db-ci.properties /etc/minerva/db.properties
- mvn -DskipTests=true clean install -pl persist -am
- mvn test -pl persist