cache: cargo
before_cache:
    - find ./target/debug -type f -maxdepth 1 -delete
    - rm -fr ./target/debug/{deps,.fingerprint}/{*ra_*,*test*,*tools*,*gen_lsp*,*thread_worker*}
    - rm -f  ./target/.rustc_info.json

matrix:
    include:
        - os: linux
          language: rust
          rust: stable
          script:
              - rustup component add rustfmt
              - rustup component add rust-src
              - cargo test --no-run  # let's measure compile time separately
              - cargo test
          env:
              - RUSTFLAGS="-D warnings", CARGO_INCREMENTAL=0

        - os: linux
          if: branch = master AND type = push
          before_script:
              - DEPLOY_DOCS=1
          language: rust
          rust: stable
          script:
              - cargo doc --all --no-deps
          env:
              - RUSTFLAGS="-D warnings", CARGO_INCREMENTAL=0

        - language: node_js
          node_js: node
          before_script: false
          script:
              - cd editors/code && npm ci && npm run travis

branches:
    only:
        - staging
        - master
        - trying

deploy:
    provider: pages
    skip-cleanup: true
    github-token: $DOCS_TOKEN  # Set in the settings page of your repository, as a secure variable
    keep-history: true
    local-dir: target/doc
    branch: gh-pages
    on:
        branch: master
        condition: $DEPLOY_DOCS = 1