language: rust
rust: stable
addons:
  apt:
    packages:
      - libssl-dev

jobs:
  include:
    - os: linux
      dist: bionic

    - os: osx
    - os: linux
      name: Coverage
      before_script:
          - cargo install cargo-tarpaulin
      script:
          - cargo tarpaulin --out Xml
      after_success:
          - bash <(curl -s https://codecov.io/bash)

before_script:
  - rustup component add rustfmt

script:
  - cargo fmt --all -- --check
  - cargo build
  - cargo test