polylabel 1.0.2

A Rust implementation of the Polylabel algorithm
Documentation
language: rust
cache: cargo
services:
  - docker
addons:
  apt:
    packages:
      - libcurl4-openssl-dev
      - libelf-dev
      - libdw-dev
      - binutils-dev
env:
  global:
    # This will be part of the release tarball
    # TODO change the project name
    - PROJECT_NAME=polylabel-rs
    # TODO comment out this variable if you don't want to build .deb packages on all the targets.
    # - MAKE_DEB=yes
    # TODO update these two variables. They are part of the .deb package metadata
    - DEB_MAINTAINER="Stephan Hügel <urschrei@gmail.com>"
    - DEB_DESCRIPTION=""
    - TRAVIS_CARGO_NIGHTLY_FEATURE=""
    - DOCKER_IMAGE=quay.io/pypa/manylinux1_x86_64
    # GH_TOKEN
    - secure: duS4EzFgamSd0mhi/MVsWnnyZpn9031VFSmoNIaLocP/vLRalkewMf/vkc2QCt6L4uJgts6kL3j3JcC9lYa5D6MJwwyAxkn6KwivrG6g/Z+mywjDll+P9iqIF96O0okFxnITu3I4yZDsYb9ERH25sfYzetAFbvjc3vOL8FD6bHboo65iukDWrl18QS8qdHycAb7Q9mxjK+0HbP0IjlROLhjzwJ3/xQ40Cv2xgZKnNGH2QsrbLhnKvrvoScU7AZR3gw5XaNWyiVkVmHEfwNwFYX/LDAeTIzH3sdYFTjersDHLFbmTzLSQuIHfEvSzzBdvasUiZIGF/rsFjjhsov5pjXRbwaZUHrPH6Gkmx916T/vZyWeg38QJvsdZ6n//gbas+Nnr4g/mvVGfZDlr1+RTKZWCmf5HjuC3Wsa59RTkr1+d7p2tefUk52N4cPcn+MF/zXT8EmnL//O/QNjQaLMdmYvnQcWykMtwY2JkHgiuNRy7LRO9NACDw16rVjM0HNGI3XXGTYwL0cB02SSSAkK4/8dHspc8XT57/QLW1XTqk1osgbrTNXxx9ajwpKkXKdbfXmN2hxGHtixtQrwgWEZTuWC6E70RTfLYnu62bZ/jaqx2E/EDVZu3/wq1vBLcal1UCYh9L3ln3RtEAzKNPUtHBKGeEfkaZ+i52jLoUir4lCo=


# AFAICT There are a few ways to set up the build jobs. This one is not the DRYest but I feel is the
# easiest to reason about.
# TODO Feel free to remove the channels/targets you don't need
# NOTE Make *sure* you don't remove a reference (&foo) if you are going to dereference it (*foo)
matrix:
  include:
    # Stable channel
    # - os: osx
    #   rust: stable
    #   env: TARGET=i686-apple-darwin
    # - os: linux
    #   rust: stable
    #   env: TARGET=i686-unknown-linux-gnu
    #   addons:
    #     apt:
    #       packages: &i686_unknown_linux_gnu
    #         # Cross compiler and cross compiled C libraries
    #         - gcc-multilib

    ###############################
    - os: osx
      osx_image: xcode7.3
      rust: stable
      env: TARGET=x86_64-apple-darwin
    - os: linux
      rust: stable
      env: TARGET=x86_64-unknown-linux-gnu
      services: docker
    # Beta channel
    # - os: osx
    #   rust: beta
    #   env: TARGET=i686-apple-darwin
    # - os: linux
    #   rust: beta
    #   env: TARGET=i686-unknown-linux-gnu
    #   addons:
    #     apt:
    #       packages: *i686_unknown_linux_gnu
    ############################
    - os: osx
      rust: beta
      osx_image: xcode7.3
      env: TARGET=x86_64-apple-darwin
    - os: linux
      rust: beta
      env: TARGET=x86_64-unknown-linux-gnu


    # Nightly channel
    # - os: osx
    #   rust: nightly
    #   env: TARGET=i686-apple-darwin
    # - os: linux
    #   rust: nightly
    #   env: TARGET=i686-unknown-linux-gnu
    #   addons:
    #     apt:
    #       packages: *i686_unknown_linux_gnu

    ############
    - os: osx
      osx_image: xcode7.3
      rust: nightly
      env: TARGET=x86_64-apple-darwin
    - os: linux
      rust: nightly
      env: TARGET=x86_64-unknown-linux-gnu

  allow_failures:
    # Target `i686-unknown-linux-musl` is currently only available on the nightly channel
    - os: linux
      rust: stable
      env: TARGET=i686-unknown-linux-musl
    - os: linux
      rust: beta
      env: TARGET=i686-unknown-linux-musl

before_install:
  - bash ci/preinstall.sh
  - export PATH="$PATH:$HOME/.cargo/bin"

before_script: |
  PKGNAME="${TRAVIS_REPO_SLUG}" # must match with cargo.toml
  LOCAL="~/.local" # install here to avoid `sudo`
  pip install travis-cargo --user &&
  export PATH=$HOME/.local/bin:$PATH

install:
  - echo $TRAVIS_RUST_VERSION
  - bash ci/install.sh

script:
  - bash ci/script.sh

after_success:
  - travis-cargo --only stable doc
  - travis-cargo --only stable doc-upload
  - travis-cargo coveralls --no-sudo --verify
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./kcov/build/src/kcov --verify --coveralls-id=$TRAVIS_JOB_ID --exclude-pattern=/.cargo target/kcov target/debug/polylabel-*; fi
  - if [[ "$TARGET" == "x86_64-unknown-linux-gnu" ]]; then docker pull $DOCKER_IMAGE; fi

before_deploy:
  - if ! [[ "$TARGET" == "x86_64-unknown-linux-gnu" ]]; then bash ci/before_deploy.sh; fi
  - if [[ "$TARGET" == "x86_64-unknown-linux-gnu" ]]; then sudo docker run -e TRAVIS_TAG="$TRAVIS_TAG" --rm -v `pwd`:/io $DOCKER_IMAGE /io/ci/manylinux_rust.sh; fi
  - sudo chown $USER ${PROJECT_NAME}-${TRAVIS_TAG}-${TARGET}.tar.gz
  
deploy:
  provider: releases
  # TODO Regenerate this api_key for your project, this one won't work for you. Here's how:
  # - Go to 'https://github.com/settings/tokens/new' and generate a Token with only the
  # `public_repo` scope enabled
  # - Call `travis encrypt $github_token` where $github_token is the token you got in the previous
  # step and `travis` is the official Travis CI gem (see https://rubygems.org/gems/travis/)
  # - Enter the "encrypted value" below
  api_key:
        - secure: Ow/YGlhzIMhfjwSPVEu7AdJBDGsIq/fQ9/T/YG4QGwXSPS96SghS1872HNkGLEVuudFHbl24Xk7MtDQFeLN5fcQFM1sz3TjqAeHDaBb5YOppMkmcAt3qL0CAxXj9OjHRqv3o80kTsyVl0NCIxxLrJUOIllvG9+Tmsuuaqp3wK0Ijk2voYb16kY9Zx1Ui8jl5N4WuljCK/OwQfOQdvLT9bQFoiHGdxni35JzEGHw7NpALwm6PnLptQWn/DweAHY3lvrHea0brIjLf8hkN49hN120l+LL/wcYcky2NyIvu7UJLbZTOuZgS3BpfZtRCzcTmosejVhfymJcUbSDQbkBRsjDDAx7tcuN/u4EiC0utAyB8T+V3iCMjue0Ndvn+ZFi8h6GVmhi5OgAFYDfTn0yOexn6AihPSjNSXV3jGJ5M3gtT2kauNwRete6LZJK+d2pnzsQJ256nnuknJaJ2/jm9oAT429a/Ewyy+aebxERYYMDqd+Kk8+mCKk2nYGiw4ADJsxanu1bdAjcJ9Og8i1cpITnkFwhREVVGmleLlhkT6ekzrETJSuqA7KeffonlSMSbUV3d8oQHeYGZvnUJnJ+yaobUq2mmdzb1qDv23AdH/1mrf0Y7kNeiaVKBYaikm6MMd/KWQeG4eARZFBbv/lXkuRuSp0OpnIHAlgAAHJciKsM=
  file_glob: true
  file: ${PROJECT_NAME}-${TRAVIS_TAG}-${TARGET}.*
  # don't delete the artifacts from previous phases
  skip_cleanup: true
  # deploy when a new tag is pushed
  on:
    # channel to use to produce the release artifacts
    # NOTE make sure you only release *once* per target
    # TODO you may want to pick a different channel
    condition: $TRAVIS_RUST_VERSION = stable
    tags: true

branches:
  only:
    # Pushes and PR to the master branch
    - master
    # IMPORTANT Ruby regex to match tags. Required, or travis won't trigger deploys when a new tag
    # is pushed. This regex matches semantic versions like v1.2.3-rc4+2016.02.22
    - /^v\d+\.\d+\.\d+.*$/

notifications:
  email:
    on_success: never