mirror of https://github.com/MISP/MISP
157 lines
5.2 KiB
YAML
157 lines
5.2 KiB
YAML
language: php
|
|
|
|
php:
|
|
- 7.0
|
|
- 7.1
|
|
- 7.2
|
|
- 7.3
|
|
- nightly
|
|
|
|
services:
|
|
- redis
|
|
|
|
sudo: required
|
|
dist: bionic
|
|
group: edge
|
|
|
|
addons:
|
|
mariadb: '10.2'
|
|
hosts:
|
|
- misp.local
|
|
- localhost
|
|
|
|
before_install:
|
|
- git config --global user.name "TravisCI"
|
|
- export PATH="$HOME/.local/bin:$PATH"
|
|
|
|
install:
|
|
- sudo add-apt-repository -y ppa:deadsnakes/ppa
|
|
- sudo apt-get -y update
|
|
- 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 libonig2
|
|
- sudo apt-get -y dist-upgrade
|
|
- wget https://bootstrap.pypa.io/get-pip.py
|
|
- sudo python3.6 get-pip.py
|
|
- hash -r
|
|
- sudo pip3.6 install --upgrade pip setuptools requests
|
|
- hash -r
|
|
- sudo pip3.6 install --upgrade -r requirements.txt
|
|
- sudo pip3.6 install pipenv
|
|
- phpenv rehash
|
|
- pushd app
|
|
- composer install
|
|
- popd
|
|
- phpenv config-add travis/myphpconfig.ini
|
|
- cp -fa INSTALL/setup/config.php app/Plugin/CakeResque/Config/config.php
|
|
# Set perms
|
|
- sudo chown -R www-data:www-data `pwd`
|
|
- 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
|
|
# Resque perms
|
|
- sudo chown -R www-data:www-data `pwd`/app/Plugin/CakeResque/tmp
|
|
- sudo chmod -R 755 `pwd`/app/Plugin/CakeResque/tmp
|
|
# install MySQL
|
|
- sudo chmod -R 777 `pwd`/INSTALL
|
|
- 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
|
|
# configure apache virtual hosts
|
|
- sudo chmod -R 777 `pwd`/build
|
|
- sudo mkdir -p /etc/apache2/sites-available
|
|
- 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
|
|
- sudo cp travis/bootstrap.php app/Config/bootstrap.php
|
|
- sudo cp travis/database.php app/Config/database.php
|
|
- sudo cp travis/core.php app/Config/core.php
|
|
- sudo cp travis/config.php app/Config/config.php
|
|
# Ensure the perms
|
|
- sudo chown -R www-data:www-data `pwd`/app/Config
|
|
- 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
|
|
- sudo gpg --homedir `pwd`/.gnupg --gen-key --batch `pwd`/travis/gpg
|
|
- sudo chown www-data:www-data `pwd`/.gnupg
|
|
- sudo chmod 700 `pwd`/.gnupg
|
|
# Get authkey
|
|
- sudo usermod -a -G www-data $USER
|
|
- sudo -E su $USER -c 'app/Console/cake userInit -q | sudo tee ./key.txt'
|
|
- sudo app/Console/cake Live 1
|
|
- sudo chmod 777 ./key.txt
|
|
- sudo chmod -R 777 ./tests
|
|
- sudo chown -R www-data:www-data `pwd`
|
|
- sudo chmod +x /home/travis/build
|
|
- sudo chmod +x /home/travis
|
|
- sudo chmod +x /home
|
|
|
|
before_script:
|
|
- curl http://misp.local
|
|
- AUTH=`cat key.txt`
|
|
- sudo chmod -R 777 PyMISP
|
|
- pushd PyMISP
|
|
- echo 'url = "http://misp.local"' >> tests/keys.py
|
|
- echo 'key = "'${AUTH}'"' >> tests/keys.py
|
|
- cat tests/keys.py
|
|
- popd
|
|
|
|
script:
|
|
- pushd tests
|
|
- ./curl_tests.sh $AUTH
|
|
- popd
|
|
- 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
|
|
- pushd tests
|
|
- git clone https://github.com/viper-framework/viper-test-files.git
|
|
- popd
|
|
- pipenv run python tests/test.py
|
|
- pipenv run python tests/test_mispevent.py
|
|
- pipenv run python tests/test_offline.py
|
|
- pipenv run python tests/testlive_comprehensive.py
|
|
- popd
|
|
- cp PyMISP/tests/keys.py PyMISP/examples/events/
|
|
- pushd PyMISP/examples/events/
|
|
- pipenv run python ./create_massive_dummy_events.py -l 5 -a 30
|
|
- popd
|
|
- pushd app/files/feed-metadata
|
|
- jsonschema -i defaults.json schema.json
|
|
- popd
|
|
|
|
after_failure:
|
|
- 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
|
|
|
|
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
|
|
|
|
after_success:
|
|
- coveralls
|
|
- coverage report
|
|
- coverage xml
|
|
- codecov
|