2017-01-06 19:11:18 +01:00
|
|
|
# Copyright (c) 2016-2017 Martin Donath <martin.donath@squidfunk.com>
|
2016-02-11 10:44:42 +01:00
|
|
|
|
|
|
|
# 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
|
2016-10-31 10:16:26 +01:00
|
|
|
sudo: false
|
2016-02-11 10:44:42 +01:00
|
|
|
|
2017-02-24 18:36:22 +01:00
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Regular builds
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
2016-02-11 12:09:58 +01:00
|
|
|
# Node.js versions
|
|
|
|
node_js:
|
2016-10-30 14:10:44 +01:00
|
|
|
- 5
|
|
|
|
- 6
|
2017-02-09 11:12:56 +01:00
|
|
|
- 7
|
2017-02-09 00:45:01 +01:00
|
|
|
|
2017-02-05 22:46:45 +01:00
|
|
|
# Limit clone depth to 5, to speed up build
|
|
|
|
git:
|
|
|
|
depth: 5
|
|
|
|
|
2016-12-31 18:05:31 +01:00
|
|
|
# Cache dependencies
|
2016-12-31 18:01:59 +01:00
|
|
|
cache:
|
|
|
|
pip: true
|
2017-02-24 18:51:18 +01:00
|
|
|
yarn: true
|
2016-12-31 18:01:59 +01:00
|
|
|
directories:
|
|
|
|
- node_modules
|
|
|
|
|
2017-02-10 10:36:20 +01:00
|
|
|
# Install yarn as Travis doesn't support it out of the box
|
2017-02-24 20:57:19 +01:00
|
|
|
before_install:
|
2017-02-24 21:04:23 +01:00
|
|
|
- npm install -g yarn
|
2017-02-09 18:10:27 +01:00
|
|
|
|
2016-02-11 10:44:42 +01:00
|
|
|
# Install dependencies
|
2017-02-24 19:44:04 +01:00
|
|
|
install:
|
|
|
|
- yarn install --ignore-optional
|
|
|
|
- pip install --user -r requirements.txt
|
2016-02-11 10:44:42 +01:00
|
|
|
|
|
|
|
# Perform build and tests
|
2017-02-24 20:57:19 +01:00
|
|
|
script:
|
|
|
|
- yarn run build
|
2017-02-24 18:36:22 +01:00
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Additional builds
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
2017-02-24 20:57:19 +01:00
|
|
|
# Matrix for additional builds
|
2017-02-24 18:36:22 +01:00
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
|
|
|
|
# Build release and docker image and send to PyPI and Docker Hub.
|
2017-02-24 18:45:48 +01:00
|
|
|
- node_js: 5
|
2017-02-24 18:36:22 +01:00
|
|
|
services:
|
|
|
|
- docker
|
2017-02-24 20:57:19 +01:00
|
|
|
env:
|
|
|
|
- __TASK=RELEASE
|
2017-02-24 18:36:22 +01:00
|
|
|
|
|
|
|
# If we're not on a release branch, exit early and indicate success
|
2017-02-24 20:59:40 +01:00
|
|
|
before_install:
|
|
|
|
- echo "$TRAVIS_BRANCH" | grep -qvE "^[0-9.]+$" && exit 0; :;
|
2017-02-24 18:36:22 +01:00
|
|
|
|
2017-02-24 19:36:44 +01:00
|
|
|
# Install wheel for build
|
2017-02-24 19:44:04 +01:00
|
|
|
install:
|
|
|
|
- pip install wheel
|
2017-02-24 19:36:44 +01:00
|
|
|
|
2017-02-24 18:36:22 +01:00
|
|
|
# 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
|
2017-02-24 20:57:19 +01:00
|
|
|
- twine upload -u $PYPI_USERNAME -p $PYPI_PASSWORD dist/*
|
2017-02-24 18:36:22 +01:00
|
|
|
|
|
|
|
# Push to Docker Hub
|
2017-02-24 19:44:04 +01:00
|
|
|
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
|
2017-02-24 20:57:19 +01:00
|
|
|
- docker tag $TRAVIS_REPO_SLUG $TRAVIS_REPO_SLUG:$TRAVIS_BRANCH
|
2017-02-24 18:36:22 +01:00
|
|
|
- docker tag $TRAVIS_REPO_SLUG $TRAVIS_REPO_SLUG:latest
|
|
|
|
- docker push $TRAVIS_REPO_SLUG
|
|
|
|
|
2017-02-24 20:57:19 +01:00
|
|
|
# # Build visual tests separately - temporary disabled until tests stable
|
2017-02-24 18:36:22 +01:00
|
|
|
# - 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
|