# 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: - sudo apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3 - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - sudo apt-get update -qq - sudo apt-get install -y -qq yarn # Install dependencies install: - yarn install --ignore-optional - pip install --user -r requirements.txt # Perform build and tests script: - yarn run build # ----------------------------------------------------------------------------- # Additional builds # ----------------------------------------------------------------------------- # Matrix for additional builds matrix: include: # Build release and docker image and send to PyPI and Docker Hub. - node_js: 5 services: - docker env: - __TASK=RELEASE # If we're not on a release branch, exit early and indicate success before_install: - echo "$TRAVIS_BRANCH" | grep -qvE "^[0-9.]+$" && exit 0; :; # Install wheel for build install: - pip install wheel # 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_USERNAME -p $PYPI_PASSWORD dist/* # Push to Docker Hub - docker login -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 stable # - 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