1# We use our own Perl setup (language "generic" uses a stripped-down TravisCI image) 2language: generic 3virt: lxd 4# TravisCI does not support lxd (containers) with amd64 5arch: arm64 6os: linux 7# Ubuntu 18.04 "Bionic" (Debian Buster equivalent) 8dist: bionic 9 10env: 11 global: 12 # assume the Git submodule is cloned into config/ according to .gitmodules 13 - OXI_TEST_SAMPLECONFIG_DIR=$TRAVIS_BUILD_DIR/config 14 - OXI_TEST_DB_MYSQL_NAME=openxpki 15 - OXI_TEST_DB_MYSQL_USER=openxpki 16 - OXI_TEST_DB_MYSQL_PASSWORD=openxpki 17 - OXI_TEST_DB_MYSQL_DBUSER=root 18 - OXI_TEST_DB_MYSQL_DBPASSWORD= 19 jobs: 20 - OXI_TEST_RUN=unit_coverage 21 - OXI_TEST_RUN=api2 22 - OXI_TEST_RUN=webui 23 - OXI_TEST_RUN=client 24 25cache: 26 directories: 27 - $HOME/perl5/lib/perl5 28 29before_cache: 30 - | 31 while read -d : path; do 32 test $path == "." && continue; 33 echo "Purging $path/OpenXPKI*"; 34 rm -rf $path/OpenXPKI*; 35 rm -rf $path/auto/OpenXPKI*; 36 done <<< $(perl -e 'print "$_:" for @INC') 37 38# - rm -Rf $HOME/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/OpenXPKI 39 40# 41# OS packages 42# 43addons: 44 apt: 45 packages: 46 - openssl 47 - libssl-dev 48 - pkg-config 49 - cpanminus 50 - figlet 51# mariadb: '10.1' 52# ... doesn't work, throws apt error messages because it conflicts with MySQL 53 54# 55# Service setup 56# 57before_install: 58 - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xf1656f24c74cd1d8 59 - sudo apt-get -q update 60 - sudo apt-get -y purge mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7 61 # we need to prevent invoke-rc.d from starting MariaDB as this would make 62 # the TravisCI LXD container hang forever. So we pretend it's runlevel 1 63 # where most services aren't started: (https://askubuntu.com/a/221938) 64 - sudo echo -e '#!/bin/sh\nexit 101' | sudo install -m 755 /dev/stdin /usr/sbin/policy-rc.d && sudo apt-get -y install mariadb-server-10.1 libmariadbclient-dev && sudo rm -f /usr/sbin/policy-rc.d 65 # now start MariaDB in background 66 - sudo /usr/bin/mysqld_safe 2>&1 >/dev/null & 67 # create database 68 - sudo ./tools/testenv/mysql-wait-for-db.sh 69 - sudo ./tools/testenv/mysql-create-db.sh 70 - sudo ./tools/testenv/mysql-create-user.sh 71 - sudo ./tools/testenv/mysql-create-schema.sh 72 # setup cpanm 73 - cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) 74 75# 76# Dependencies / modules 77# 78install: 79 - cpanm --quiet --notest PPI 80 - ./tools/scripts/makefile2cpanfile.pl > ./cpanfile 81 - cpanm --quiet --notest --installdeps ./ 82 # We need to reinstall Devel::Cover because we told TravisCI to cache 83 # ~/perl5/lib/perl5 but not ~/perl5/bin - so on next run the "cover" 84 # script will be gone 85 - cpanm --quiet --notest --reinstall Devel::Cover 86 - cpanm --quiet --notest Devel::Cover::Report::Coveralls 87 88# 89# Build 90# 91# (must be specified if "language" is "generic") 92script: 93 - which perl 94 - perl -v 95 - ./tools/scripts/travis-install-and-test.sh 96