language: python python: - 3.3 - 3.4 - 3.5 - 3.6 - "3.6-dev" - nightly sudo: required # do we need sudo? should double check dist: trusty addons: apt: packages: # General dependencies - p7zip-full # Testing dependencies - mercurial install: # General dependencies - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty multiverse" && sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty-updates multiverse" - sudo apt-get update -qq - sudo apt-get install -y p7zip-rar python-pip # filecheck.py dependencies - sudo apt-get install libxml2-dev libxslt1-dev - wget https://didierstevens.com/files/software/pdfid_v0_2_1.zip - unzip pdfid_v0_2_1.zip - pip install -U pip - pip install lxml exifread pillow olefile - pip install git+https://github.com/decalage2/oletools.git - pip install git+https://github.com/grierforensics/officedissector.git # PyCIRCLean dependencies - pip install -r dev-requirements.txt - pip install coveralls codecov # Testing dependencies - sudo apt-get install rar # Prepare tests # Malware from theZoo - git clone https://github.com/Rafiot/theZoo.git - pushd theZoo/malwares/Binaries - python unpackall.py - popd - mv theZoo/malwares/Binaries/out tests/dangerous/ # Path traversal attacks - git clone https://github.com/jwilk/path-traversal-samples - pushd path-traversal-samples - pushd zip - make - popd - pushd rar - make - popd - popd - mv path-traversal-samples/zip/*.zip tests/dangerous/ - mv path-traversal-samples/rar/*.rar tests/dangerous/ # Office docs - git clone https://github.com/eea/odfpy.git - mv odfpy/tests/examples/* tests/dangerous/ - pushd tests/dangerous/ - wget https://bitbucket.org/decalage/olefileio_pl/raw/3073963b640935134ed0da34906fea8e506460be/Tests/images/test-ole-file.doc - wget --no-check-certificate https://www.officedissector.com/corpus/fraunhoferlibrary.zip - unzip -o fraunhoferlibrary.zip - rm fraunhoferlibrary.zip - 7z x -p42 42.zip - popd script: - travis_wait 30 py.test --cov=kittengroomer --cov=bin tests/ notifications: email: on_success: change on_failure: change after_success: - coveralls - codecov