gluon 0.9.2

A static, type inferred programming language for application embedding
language: rust
sudo: required
services: docker
cache:
    directories:
    - $HOME/.cargo
    - $HOME/.cache/sccache

# bors setup
branches:
  only:
    - staging
    - trying
    # Build PRs
    - master
    # Build release tags
    - /^v?\d+\.\d+(\.\d+)?(-\S*)?$/

matrix:
  include:
  - rust: nightly-2018-07-24
  - rust: beta
  - rust: stable
    env: ARCH=i686

  - rust: stable
    env:
      - DEPLOY=1
      - TARGET=x86_64-unknown-linux-gnu

    # Run benchmark and a no-default-features check in a separate
  - rust: stable
    env:
      - NO_NORMAL_TEST=1
      - BENCH_DEFAULT_FEATURES_CHECK=1
      - TARGET=x86_64-unknown-linux-gnu

  - rust: nightly-2018-07-24
    env: WASM=1

    # Only for deployment
  - if: tag IS present
    env:
      - TARGET=x86_64-unknown-freebsd
      - DEPLOY=1
      - DISABLE_TESTS=1
  - if: tag IS present
    env:
      - TARGET=x86_64-pc-windows-gnu
      - DEPLOY=1
  - if: tag IS present
    env:
      - TARGET=x86_64-apple-darwin
      - DEPLOY=1
    os: osx
os:
- linux

before_install:
  - set -e
  - rustup self update
install:
  - (unset RUSTC_WRAPPER && sh scripts/cargo_install.sh sccache 0.2.7)
  - sh scripts/install_cross.sh
  - source ~/.cargo/env || true
  - sh scripts/cargo_install.sh mdbook 0.1.2

env:
  global:
    - CRATE_NAME=gluon
    - RUST_BACKTRACE=1
    - RUSTC_WRAPPER=sccache
    # A clean build seems to create ~300M 
    - SCCACHE_CACHE_SIZE=500M
script:
- >
    if [ ! -z $TRAVIS_TAG ]; then
        echo "Disabling tests for tagged builds as they timeout otherwise"
    elif [ ! -z $DISABLE_TESTS ]; then
        return
    elif [[ -z ${WASM+set} ]]; then
        ./scripts/travis.sh
    else
        rustup target add wasm32-unknown-unknown
        cargo check --target wasm32-unknown-unknown -p gluon_c-api
    fi
- mdbook build book
- sccache -s

notifications:
  webhooks:
    urls:
    - https://webhooks.gitter.im/e/78796507a78a48a4b18e
    on_success: change
    on_failure: always
    on_start: never

before_deploy:
# Only run deployment on git tags
- CURRENT_TAG=`git describe --exact-match --abbrev=0 --tags || true`
- >
    if [[ $CURRENT_TAG != "" ]]; then
        export GIT_HASH=$(git rev-parse HEAD)
        sh scripts/before_deploy.sh
    fi

before_cache:
    - rm -rf /home/travis/.cargo/registry
deploy:
  - provider: pages
    skip-cleanup: true
    github-token: $GITHUB_TOKEN
    local-dir: book/book
    on:
        branch: master

  - provider: releases
    api_key:
      secure: ImhF+DkxyHyzDQ4SZZlATjgkrzr+yY1xwADxgO2B5Xi+C7AOllkPInSB/RL+C6tebQnxIEop7KU0N4svbIw6zuoDmOvkliP++U1gXDqvpggBT7AXM5ICcLKWUzTdh3XexhL5SUmtH+QvWRwFwcOoq6mic8rc6DSvTojB/NydyJCeHGvx5iSl5o/ZSqrnEjOF/yDMXADVNwQRZebzyXss+wtTfEbD7OZoJ9ihPugDES8EkmScwS/UCJfCfEqBf/AwDSaAxVpPB/2PF7J0bDIB1ORrwA4HUguJ/U5QuV4vea0hNhhIzzwfcsbPhPLARcLENZLirUk3iygbwSPCTNg+8yEz0MPJQVTj/T48cbKkn9rgZfWi3Bs9nyv22ZouKBFQooiQD6b7WhVGY8bA1Q39cTSLfrR9WrkiRS3x11QrNkwWUqvWHb+2u0KtovTnCt9Lxrx0j8WKMO5Onx6hLfGfH00puCNpV8keWqkzriSi7/ce4mBl8HTvFX22bKZ5uZAxX2mPodAtWoh8hgOGMZhjG2ODS1CEQBxWw5nCXkKQE1afaJOEjhzXmmSNzTnfWIFQGk6V9T9LF8u/PrSVmkQCgka/arlUQlKl+Fa8XUEx8DZEHptj2OdP86A2qiUOcsAmYF2z19kYziHYK3Ll1xDPoOSil6Eej5t+n/e37bmvTMY=
    file_glob: true
    file: $CRATE_NAME-$TRAVIS_TAG-$TARGET.*
    skip_cleanup: true
    on:
      tags: true
      repo: gluon-lang/gluon
      condition: $DEPLOY = 1