forked from openxpki/openxpki
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
108 lines (100 loc) · 3.38 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# We use our own Perl setup (language "generic" uses a stripped-down TravisCI image)
language: generic
# Ubuntu 14.04 "Trusty"
dist: trusty
# Run in Docker container instead of VM - currently (2016-12-14) beta for "trusty"
sudo: required
env:
global:
- OXI_TEST_DB_MYSQL_NAME=openxpki
- OXI_TEST_DB_MYSQL_USER=openxpki
- OXI_TEST_DB_MYSQL_PASSWORD=openxpki
- OXI_TEST_DB_MYSQL_DBHOST=localhost
- OXI_TEST_DB_MYSQL_DBPORT=3306
- OXI_TEST_DB_MYSQL_DBUSER=root
- OXI_TEST_DB_MYSQL_DBPASSWORD=
cache:
directories:
- $HOME/perl5/lib/perl5
#
# OS packages
#
addons:
apt:
packages:
- libmysqlclient-dev
- openssl
- libssl-dev
- pkg-config
mariadb: '10.1'
#
# Service setup
#
before_install:
- ./tools/testenv/mysql-wait-for-db.sh
- ./tools/testenv/mysql-create-db.sh
- ./tools/testenv/mysql-create-user.sh
- ./tools/testenv/mysql-create-schema.sh
- curl -s -L https://cpanmin.us | perl - App::cpanminus
- cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
#
# Dependencies / modules
#
install:
- cpanm --quiet --notest PPI
- ./tools/scripts/makefile2cpanfile.pl > ./cpanfile
- cpanm --quiet --notest --installdeps ./
- cpanm --quiet --notest --reinstall Devel::Cover
# "--reinstall" needed for Devel::Cover because we told TravisCI to cache ~/perl5/lib/perl5
# but not ~/perl5/bin - so on next run the "cover" script will be gone
- cpanm --quiet --notest Devel::Cover::Report::Coveralls
#
# Build
#
# (must be specified if "language" is "generic")
script:
- which perl
- perl -v
# Compilation
- pushd core/server
- sed -ri 's/^(WriteMakefile.*)/\1\nMAN1PODS=>{},\nMAN3PODS=>{},/' Makefile.PL
- perl Makefile.PL
- make
# Code Coverage (submitted to coveralls.io)
- ~/perl5/bin/cover -test -report coveralls
# Unit tests
### - make test (already done via "cover -test")
# Installation
- make install
- popd
# Copy config and create directories
- 'export TRAVIS_USER=$(whoami)'
- 'export TRAVIS_USERGROUP=$(getent group $TRAVIS_USER | cut -d: -f1)'
- sudo cp -R ./config/openxpki /etc
- sudo chown -R $TRAVIS_USER /etc/openxpki
- sudo mkdir -p /var/openxpki/session
- sudo chown -R $TRAVIS_USER /var/openxpki
- sudo mkdir -p /var/log/openxpki
- sudo chown -R $TRAVIS_USER /var/log/openxpki
# Custom configuration for TravisCI
- sed -ri 's/^(user:\s+)\S+/\1'$TRAVIS_USER'/' /etc/openxpki/config.d/system/server.yaml
- sed -ri 's/^(group:\s+)\S+/\1'$TRAVIS_USERGROUP'/' /etc/openxpki/config.d/system/server.yaml
- sed -ri 's/^(pid_file:\s+)\S+/\1\/var\/openxpki\/openxpkid.pid/' /etc/openxpki/config.d/system/server.yaml
- ./tools/testenv/mysql-oxi-config.sh
# Database re-init and sample config (CA certificates etc.)
- ./tools/testenv/mysql-create-db.sh
- ./tools/testenv/mysql-create-schema.sh
- ./tools/testenv/insert-certificates.sh
# Start OpenXPKI (is in PATH)
- openxpkictl start || cat /var/log/openxpki/*
# QA tests
- pushd ./qatest/backend/nice/ && prove -q .
- popd
- pushd ./qatest/backend/api/ && prove -q .
- popd
- pushd ./qatest/backend/api2/ && prove -q .
- popd
- pushd ./qatest/backend/webui/ && prove -q .
- popd
- pushd ./qatest/client/ && prove -q .
- popd