# Copyright (c) 2016-2017 Martin Donath # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. language: node_js sudo: false # ----------------------------------------------------------------------------- # Regular builds # ----------------------------------------------------------------------------- # Node.js versions node_js: - 5 - 6 - 7 # Limit clone depth to 5, to speed up build git: depth: 5 # Cache dependencies cache: pip: true yarn: true directories: - node_modules # Install yarn as Travis doesn't support it out of the box before_install: npm install -g yarn # Do not install optional dependencies by default install: yarn install --ignore-optional # Install dependencies before_script: pip install --user -r requirements.txt # Perform build and tests script: yarn run build # ----------------------------------------------------------------------------- # Additional builds # ----------------------------------------------------------------------------- # Build matrix for additional builds matrix: include: # Build release and docker image and send to PyPI and Docker Hub. - node_js: 5 services: - docker # If we're not on a release branch, exit early and indicate success #before_install: echo "$TRAVIS_BRANCH" | grep -qE "^[0-9.]+$" && exit 0 # Don't install anything, as we're only using the pre-built files install: ":" # Perform build script: - python setup.py build sdist bdist_wheel --universal - docker build -t $TRAVIS_REPO_SLUG . # If build was successful, publish after_success: # Install twine and push release to PyPI - pip install twine #- twine upload -u $PYPI_USER -p $PYPI_PASS dist/* # Push to Docker Hub - docker login -e $DOCKER_EMAIL -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - docker tag $TRAVIS_REPO_SLUG $TRAVIS_REPO_SLUG:$TRAVIS_BRANCH - docker tag $TRAVIS_REPO_SLUG $TRAVIS_REPO_SLUG:latest - docker push $TRAVIS_REPO_SLUG # Build visual tests separately - temporary disabled until tests are stable # matrix: # include: # - node_js: 5 # addons: # artifacts: # paths: # - gemini-report # apt: # sources: # - ubuntu-toolchain-r-test # packages: # - gcc-4.8 # - g++-4.8 # env: # - CXX=g++-4.8 # install: yarn install # script: yarn run test:visual:run