MISP/.travis.yml

187 lines
7.5 KiB
YAML
Raw Normal View History

2013-11-11 23:18:13 +01:00
language: php
2016-07-01 14:43:06 +02:00
2013-11-11 23:18:13 +01:00
php:
- 7.1
2018-07-07 12:31:55 +02:00
- 7.2
2019-01-21 21:27:58 +01:00
- 7.3
- nightly
2015-09-07 00:40:47 +02:00
services:
2015-09-11 19:23:20 +02:00
- redis
2016-01-04 18:11:56 +01:00
sudo: required
2018-08-10 23:45:43 +02:00
dist: bionic
2016-01-04 18:11:56 +01:00
group: edge
2015-09-07 00:40:47 +02:00
addons:
2018-08-10 23:45:43 +02:00
mariadb: '10.2'
2015-09-11 19:23:20 +02:00
hosts:
- misp.local
2015-09-12 22:23:07 +02:00
- localhost
2016-01-12 15:18:51 +01:00
before_install:
- git config --global user.name "TravisCI"
2018-08-10 23:45:43 +02:00
- export PATH="$HOME/.local/bin:$PATH"
2016-01-12 15:18:51 +01:00
2015-09-11 19:23:20 +02:00
install:
- sudo add-apt-repository -y ppa:deadsnakes/ppa
- sudo apt-get -y update
# Travis lacks entropy.
- sudo apt-get -y install haveged
- sudo apt-get -y install python3.6 python3-pip python3.6-dev python3-nose libxml2-dev libzmq3-dev zlib1g-dev apache2 curl php-mysql php-dev php-cli libapache2-mod-php libfuzzy-dev php-mbstring libonig4 php-json php-xml php-opcache php-readline php-pear php-redis php-gnupg php-gd
2018-08-10 23:45:43 +02:00
- sudo apt-get -y dist-upgrade
- wget https://bootstrap.pypa.io/get-pip.py
- sudo python3.6 get-pip.py
- hash -r
2019-07-20 18:54:23 +02:00
- sudo pip3.6 install --upgrade pip setuptools requests pyzmq
- hash -r
2018-08-10 23:45:43 +02:00
- sudo pip3.6 install --upgrade -r requirements.txt
2019-01-25 10:43:02 +01:00
- sudo pip3.6 install pipenv
2015-09-11 19:23:20 +02:00
- phpenv rehash
2019-07-20 21:03:54 +02:00
- sudo mkdir $HOME/.composer ; sudo chown $USER:www-data $HOME/.composer
2015-09-11 19:23:20 +02:00
- pushd app
2019-07-20 21:03:54 +02:00
- sudo -H -u $USER php composer.phar require kamisama/cake-resque:4.1.2
- sudo -H -u $USER php composer.phar config vendor-dir Vendor
- sudo -H -u $USER php composer.phar install
2019-07-20 21:35:52 +02:00
- sudo phpenmod redis
- sudo phpenmod gnupg
2015-09-11 19:23:20 +02:00
- popd
- cp -fa INSTALL/setup/config.php app/Plugin/CakeResque/Config/config.php
2016-01-04 18:11:56 +01:00
# Set perms
2019-07-20 20:20:22 +02:00
- sudo chown -R $USER:www-data `pwd`
2016-01-04 18:11:56 +01:00
- sudo chmod -R 755 `pwd`
- sudo chmod -R g+ws `pwd`/app/tmp
- sudo chmod -R g+ws `pwd`/app/tmp/cache
- sudo chmod -R g+ws `pwd`/app/tmp/cache/persistent
- sudo chmod -R g+ws `pwd`/app/tmp/cache/models
- sudo chmod -R g+ws `pwd`/app/tmp/logs
- sudo chmod -R g+ws `pwd`/app/files
- sudo chmod -R g+ws `pwd`/app/files/scripts/tmp
2019-07-20 20:20:22 +02:00
- sudo chown -R $USER:www-data `pwd`
2016-01-04 18:11:56 +01:00
# Resque perms
2019-07-20 20:20:22 +02:00
- sudo chown -R $USER:www-data `pwd`/app/Plugin/CakeResque/tmp
2016-01-04 18:11:56 +01:00
- sudo chmod -R 755 `pwd`/app/Plugin/CakeResque/tmp
# install MySQL
- sudo chmod -R 777 `pwd`/INSTALL
2015-09-22 10:57:08 +02:00
- mysql -u root -e 'create database misp;'
- mysql -u root -e "grant usage on *.* to misp@localhost identified by 'blah'";
- mysql -u root -e "grant all privileges on misp.* to misp@localhost;"
- mysql -u misp -pblah misp < INSTALL/MYSQL.sql
2016-01-04 18:11:56 +01:00
# configure apache virtual hosts
- sudo chmod -R 777 `pwd`/build
2018-08-10 23:45:43 +02:00
- sudo mkdir -p /etc/apache2/sites-available
2016-01-04 18:11:56 +01:00
- sudo cp -f build/travis-ci-apache /etc/apache2/sites-available/misp.local.conf
- sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/misp.local.conf
- sudo a2dissite 000-default
- sudo a2ensite misp.local.conf
- sudo a2enmod rewrite
- sudo service apache2 restart
# MISP configuration
- sudo chmod -R 777 `pwd`/travis
2019-07-20 21:35:52 +02:00
- sudo cp app/Config/bootstrap.default.php app/Config/bootstrap.php
2016-01-04 18:11:56 +01:00
- sudo cp travis/database.php app/Config/database.php
2019-07-20 21:35:52 +02:00
- sudo cp app/Config/core.default.php app/Config/core.php
- sudo cp app/Config/config.default.php app/Config/config.php
2016-01-04 18:11:56 +01:00
# Ensure the perms
2019-07-20 20:20:22 +02:00
- sudo chown -R $USER:www-data `pwd`/app/Config
2016-01-04 18:11:56 +01:00
- sudo chmod -R 750 `pwd`/app/Config
# GPG setup
- sudo mkdir `pwd`/.gnupg
# /!\ VERY INSECURE BUT FASTER ON THE BUILD ENV OF TRAVIS
- sudo cp -a /dev/urandom /dev/random
2019-07-05 08:16:08 +02:00
- sudo gpg --no-tty --no-permission-warning --pinentry-mode=loopback --passphrase "travistest" --homedir `pwd`/.gnupg --gen-key --batch `pwd`/travis/gpg
2019-07-20 20:20:22 +02:00
- sudo chown $USER:www-data `pwd`/.gnupg
2016-01-04 18:11:56 +01:00
- sudo chmod 700 `pwd`/.gnupg
2019-07-20 20:20:22 +02:00
# change perms
- sudo chown -R $USER:www-data `pwd`
- sudo chmod +x /home/travis/build
- sudo chmod +x /home/travis
- sudo chmod +x /home
2016-01-04 18:11:56 +01:00
# Get authkey
- sudo usermod -a -G www-data $USER
- sudo -E su $USER -c 'app/Console/cake userInit -q | sudo tee ./key.txt'
2019-07-20 18:54:23 +02:00
- sudo -E su $USER -c 'app/Console/cake Admin updateDatabase'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.python_bin" "/usr/bin/python3"'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "Session.autoRegenerate" 0'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "Session.timeout" 600'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "Session.cookieTimeout" 3600'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.host_org_id" 1'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.email" "info@admin.test"'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.disable_emailing" true'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "Plugin.CustomAuth_disable_logout" false'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.redis_host" "127.0.0.1"'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.redis_port" 6379'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.redis_database" 13'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "MISP.redis_password" ""'
- sudo -E su $USER -c 'app/Console/cake Admin updateGalaxies'
- sudo -E su $USER -c 'app/Console/cake Admin updateTaxonomies'
- sudo -E su $USER -c 'app/Console/cake Admin updateWarningLists'
- sudo -E su $USER -c 'app/Console/cake Admin updateNoticeLists'
- sudo -E su $USER -c 'app/Console/cake Admin updateObjectTemplates "1337"'
- sudo -E su $USER -c 'app/Console/cake Admin setSetting "Plugin.ZeroMQ_enable" true'
2019-07-20 20:20:22 +02:00
- sudo -E su $USER -c 'app/Console/cake Live 1'
2016-01-04 18:11:56 +01:00
- sudo chmod 777 ./key.txt
2016-01-12 15:18:51 +01:00
- sudo chmod -R 777 ./tests
2019-07-20 20:20:22 +02:00
# Start workers
- sudo chmod +x app/Console/worker/start.sh
- app/Console/worker/start.sh &
- sleep 10
2016-01-04 18:11:56 +01:00
before_script:
- curl http://misp.local
- AUTH=`cat key.txt`
- sudo chmod -R 777 PyMISP
2015-09-22 10:57:08 +02:00
- pushd PyMISP
- echo 'url = "http://misp.local"' >> tests/keys.py
- echo 'key = "'${AUTH}'"' >> tests/keys.py
- cat tests/keys.py
- popd
script:
2016-01-12 15:18:51 +01:00
- pushd tests
- ./curl_tests.sh $AUTH
- popd
2015-09-22 10:57:08 +02:00
- pushd PyMISP
# FIXME: should be install, but as lief is changing all the time, we have to use update instead: https://github.com/MISP/PyMISP/issues/391
- pipenv update -d
2018-08-10 23:45:43 +02:00
- pushd tests
- git clone https://github.com/viper-framework/viper-test-files.git
- popd
- pipenv run python tests/testlive_comprehensive.py
2019-01-25 10:43:02 +01:00
- pipenv run python tests/test.py
- pipenv run python tests/test_mispevent.py
2016-01-04 18:11:56 +01:00
- popd
2016-07-01 14:00:05 +02:00
- cp PyMISP/tests/keys.py PyMISP/examples/events/
- pushd PyMISP/examples/events/
2019-01-25 10:43:02 +01:00
- pipenv run python ./create_massive_dummy_events.py -l 5 -a 30
2016-07-01 14:00:05 +02:00
- popd
2018-06-08 11:18:52 +02:00
- pushd app/files/feed-metadata
- jsonschema -i defaults.json schema.json
- popd
2016-01-04 18:11:56 +01:00
after_failure:
- ls -Rl `pwd`/app
2016-01-04 18:11:56 +01:00
- curl http://misp.local
- cat /etc/apache2/sites-available/misp.local.conf
- sudo ls -l /var/log/apache2
- sudo cat `pwd`/app/tmp/logs/error.log
- sudo cat `pwd`/app/tmp/logs/debug.log
- sudo cat /var/log/apache2/error.log
- sudo cat /var/log/apache2/misp.local_error.log
- sudo cat /var/log/apache2/misp.local_access.log
- pwd
2016-06-08 11:38:58 +02:00
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/05e30284086a8e948d31
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
2015-09-22 16:40:35 +02:00
after_success:
- coveralls
2015-10-29 06:45:33 +01:00
- coverage report
- coverage xml
- codecov