language: c addons: apt: packages: &common_apt_packages # graphical environment - scrot - twm # automated GUI testing - sikuli-ide # Missing dependencies for sikuli-ide #- libantlr3-runtime-java # on 16.04 - antlr3 # on 14.04 #- jaffl-java # unavailable on Travis - libjna-java - libcommons-cli-java - libjson-simple-java - libdc1394-22 - libdc1394-22-dev - wmctrl # example-os build dependencies: - nasm - mtools - genisoimage - faketime matrix: include: - os: linux env: MODE=self-test # Ensure that the Makefile works, especially with parallel builds. script: make -j 10 test sudo: true addons: apt: packages: - *common_apt_packages - qemu - qemu-system-x86 - qemu-system-arm - bochs-sdl - dosbox - os: linux env: MODE=gui-sh sudo: false addons: apt: packages: - *common_apt_packages - os: linux env: MODE=dosbox sudo: false addons: apt: packages: - *common_apt_packages - dosbox - os: osx env: MODE=osx-test # Ensure that the Makefile works. Check that the generated os.bat works in sh mode before_install: - brew install cdrtools - brew install mtools - brew cask install gdisk - brew install imagemagick # --with-x11 - brew install libfaketime script: make all test/noemu test/macos - os: linux env: MODE=qemu-system-i386-floppy sudo: false addons: apt: packages: - *common_apt_packages - qemu - qemu-system-x86 - os: linux env: MODE=qemu-system-i386-cdrom sudo: false addons: apt: packages: - *common_apt_packages - qemu - qemu-system-x86 - os: linux env: MODE=qemu-system-arm sudo: false addons: apt: packages: - *common_apt_packages - qemu - qemu-system-arm # Thanks to https://keyholesoftware.com/2012/12/05/building_vagrant_boxes_with_veewee_on_travis/ for making me realize that VirtualBox will actually work with sudo - os: linux env: MODE=virtualbox sudo: true addons: apt: packages: - *common_apt_packages #- virtualbox - os: linux env: MODE=bochs sudo: false addons: apt: packages: - *common_apt_packages - bochs-sdl install: # TODO: put these in a Makefile target, to share the code with the appveyor configuration - make --version - nasm -v - mtools --version - mtools || true - mkisofs --version - zip --help - unzip -h - gdisk --version - import --version || test "$MODE" = osx-test # import --version has a non-zero exit code on the Travis installation - Xvfb -help - ssh -V - faketime --version - ./utils/install-sikulix.sh - export PATH="$HOME/sikulix/:$PATH" - if test "$MODE" = virtualbox -o "$MODE" = self-test; then ./utils/install-virtualbox.sh; fi script: - make test/${MODE} - | ./utils/auto-push.sh "https://github.com/jsmaniac/os-test-framework.git" \ "git@github.com:jsmaniac/os-test-framework-deploy-artifacts.git" \ "screenshots-$TRAVIS_BRANCH-$MODE" \ "deploy-base" \ "edf345aad47e" \ "deploy-screenshots" \ "$(if test "$TRAVIS_BRANCH" = "master"; then echo master; else echo dev; fi)"