swindon 0.7.8

An HTTP edge (frontend) server with smart websockets support
language: rust
rust: stable
os: linux
dist: trusty
sudo: false
addons:
  apt:
    sources:
    - sourceline: 'ppa:fkrull/deadsnakes'
    packages:
    - python3.6
    - libcurl4-openssl-dev
    - libelf-dev
    - libdw-dev
    - cmake
    - gcc
    - binutils-dev
    - libiberty-dev
    - fakeroot
    - musl-tools
  hosts:
  - example.com
  - www.example.com

cache:
- apt
- cargo
- pip

before_cache:
- rm -r $TRAVIS_BUILD_DIR/target/cov
- rm -r $TRAVIS_BUILD_DIR/target/debug

script:
- cargo build $CARGO_ARGS
- cargo test $CARGO_ARGS

jobs:
  include:
  # tests
  - rust: stable
  - rust: stable
    os: osx
  - rust: beta
  - rust: nightly
  - env:
    - FUNC_TEST=y
    - AIOHTTP_NO_EXTENSIONS=1
    install:
    # - source .travis/coverage.sh && build_kcov
    - curl https://bootstrap.pypa.io/get-pip.py -o - | python3.6 - --user
    - pip3 install -r tests/requirements.txt --user
    script:
    - cargo build $CARGO_ARGS
    - cargo test $CARGO_ARGS # for coverage
    - >
      pytest --swindon-bin=$(pwd)/target/debug/swindon \
        --swindon-config=$(pwd)/tests/config.yaml.tpl \
        --swindon-replication-config=$(pwd)/tests/config-w-replication.yaml.tpl \
        -rsxX  $TEST_ARGS
    # --kcov=$HOME/.local/bin/kcov
    - bash <(curl -s https://codecov.io/bash)

  - env:
    - DOC=true
    install:
    - pip install sphinx==1.6.2 docutils --user
    - pip install -r docs/requirements.txt --user
    script:
    - make html -C docs SPHINXBUILD=~/.local/bin/sphinx-build
    - touch docs/_build/html/.nojekyll
    deploy:
      provider: pages
      skip_cleanup: true
      local_dir: docs/_build/html
      github_token:
        secure: "SKTy9qH9o90kdzDrTXhjVQR1qXt+ayk/8ptSvK8IqSzVj8AV1Jwe94c+KqfiXsoJnEU0jV0KUqF57cjhRUSMrtRUlLt1vteeMciGxGhjmet3ilaBy9/hIeop3kzHmkeDDhyvw+rzRt6sT6qhBQs3WXUSPf3RCqdoGk92QxH5jAeWNDxLIBAijvuHyxV6rjpw/HNrs4J6wcypKvN68OhE9MaY9UHKf2+H6755LVz/TlVFkshbTSK9ANTaWKJ5dNLhV4622tCG9lqrebv3nhdUNxDY6z2xKFGgURc2lCi4Fs268Eg1CIQ9M2QIStIF62+x8IJhAfl7WQbPTBrkI5VCOsK59QXhaA9GcmYGSo/efZoZP3xPos+4lDqNLcQhrotc9hU5zsrO9TnTt4Um0n3HupyX+cRqs6L6pUiBJiqPWWg+xZmPLVNa5KgFTUQVrVPWcBPKVn0XV4eWJQjBTVEOjd7XdL2JuqZOsEPY99IPdIDoMS9vAmxRb+aq3VffAKuv+CV5sRWpkA895O3yI5Ohc2cJ0aWsqUKnvd+TwRFqJF2+mcCRdnyGx7xgfTkR12TFTtY99IvO6OggXIX3dfTmXZKtDGNsw9ScGcYjrGRvAqiawOv3IgLjswR70NtKnyNLIqcVxbq/h7lKW+J1xMRueTJKviq624nE46n2/yePgSA="
      on:
        branch: master

  # deploy
  - stage: deploy
    os: linux
    rust: stable
    env:
    # CARGO_TOKEN
    - secure: "Ee7XgamcihD8OLT/0AdQSms6uOotKTvsAAXWczkg9E5u5rXePVBZtJ3DtOAFEp4nKoqlWDkBuTb+GqcyPb4tnOIy0Bd+pEnY2dTgtLyO2XE/yaaC/7JsOzyrNqaD19lj+vyUbII3LCkf795FLQSLeUNLLarlJyJv21Spuvx7hqKjjP+tAgriHxyd1s5hrMG6qSGci8jadkHMrjked2dQbsfyeHSqI1IFoqDuz8yuqro3Pm9cPGL9KAL6M1CQ82l+J9CJGdY81cwiWwb7SuMHmviBg0dChbfsyEizyMGsJJgLNXypKuUfdwaMEXoqi3h0Mmn7F7ykJ11kRYnuXs2v8TGPtdSruLfl0uDOhQgBMAWjIIgwBNBeyWD/zY+0jTzONiTFCItYUlEWy5Q/unnxsxhSJTa5XCFqZ+RNaIYFAwlipJL9H8StvHjWWYJSISusFzFJD2/UhRlv2XouPKYhiW7jTgB4bj5PP9DrdMKSoPEVyn2qq9I/I6Yfg83m3qbgcXaYV1SOn2fc+Ji21xuPmFIfMszXl976WOq6AsGEzopwHBbaT4602wGBMJh/Sq2ZfTmmhaOGXD9XmQz3sLUVJOPyeCdSdu5jqAS+vmSPsXk011aovOq4kJMlEbWD8lMB8Waqs/C7S9ciJvm+mZLu5aBrM4XNrF4cXhMNmwOZEsc="
    install: true
    script: true

    deploy:
    - provider: script
      script: 'cargo publish --verbose --token=$CARGO_TOKEN'
      on:
        tags: true

  - stage: deploy
    install:
    - rustup target add x86_64-unknown-linux-musl
    - cargo build --target=x86_64-unknown-linux-musl --release
    script: true
    before_deploy: |
      mkdir -p dist
      fakeroot sh -ecx '
        install -D target/x86_64-unknown-linux-musl/release/swindon pkg/usr/bin/swindon
        install -D target/x86_64-unknown-linux-musl/release/swindon-dev pkg/usr/bin/swindon-dev
        tar -C pkg -czf dist/swindon-static-$TRAVIS_TAG.tar.gz usr
      '
    deploy:
      provider: releases
      api_key:
        secure: "SKTy9qH9o90kdzDrTXhjVQR1qXt+ayk/8ptSvK8IqSzVj8AV1Jwe94c+KqfiXsoJnEU0jV0KUqF57cjhRUSMrtRUlLt1vteeMciGxGhjmet3ilaBy9/hIeop3kzHmkeDDhyvw+rzRt6sT6qhBQs3WXUSPf3RCqdoGk92QxH5jAeWNDxLIBAijvuHyxV6rjpw/HNrs4J6wcypKvN68OhE9MaY9UHKf2+H6755LVz/TlVFkshbTSK9ANTaWKJ5dNLhV4622tCG9lqrebv3nhdUNxDY6z2xKFGgURc2lCi4Fs268Eg1CIQ9M2QIStIF62+x8IJhAfl7WQbPTBrkI5VCOsK59QXhaA9GcmYGSo/efZoZP3xPos+4lDqNLcQhrotc9hU5zsrO9TnTt4Um0n3HupyX+cRqs6L6pUiBJiqPWWg+xZmPLVNa5KgFTUQVrVPWcBPKVn0XV4eWJQjBTVEOjd7XdL2JuqZOsEPY99IPdIDoMS9vAmxRb+aq3VffAKuv+CV5sRWpkA895O3yI5Ohc2cJ0aWsqUKnvd+TwRFqJF2+mcCRdnyGx7xgfTkR12TFTtY99IvO6OggXIX3dfTmXZKtDGNsw9ScGcYjrGRvAqiawOv3IgLjswR70NtKnyNLIqcVxbq/h7lKW+J1xMRueTJKviq624nE46n2/yePgSA="
      file: "dist/swindon-static-$TRAVIS_TAG.tar.gz"
      skip_cleanup: true
      on:
        tags: true