language: rust rust: - stable env: CFLAGS="-Wall -Wextra -Werror -Wstrict-prototypes" matrix: include: - os: osx env: USE_EMSCRIPTEN=1 - os: linux services: docker before_install: # Install node - nvm install 10 - nvm use 10 # Download emscripten and create a shorthand for adding it to the PATH. # Don't add it to the path globally because it overrides the default # clang and node. - if [ -n "$USE_EMSCRIPTEN" ]; then export WASM_ENV="$(script/fetch-emscripten)"; fi script: # Build the WASM binding - (eval "$WASM_ENV" && script/build-wasm) # build the shared/static libraries - make # Build the CLI - cargo build --release # Fetch and regenerate the fixture parsers - script/fetch-fixtures - script/generate-fixtures - (eval "$WASM_ENV" && script/generate-fixtures-wasm) # Run the tests - export TREE_SITTER_STATIC_ANALYSIS=1 - script/test - script/test-wasm - script/benchmark branches: only: - master - /\d+\.\d+\.\d+/ before_deploy: - cp target/release/tree-sitter . - gzip --suffix "-${TRAVIS_OS_NAME}-x64.gz" tree-sitter deploy: provider: releases api_key: secure: "cAd2mQP+Q55v3zedo5ZyOVc3hq3XKMW93lp5LuXV6CYKYbIhkyfym4qfs+C9GJQiIP27cnePYM7B3+OMIFwSPIgXHWWSsuloMtDgYSc/PAwb2dZnJqAyog3BohW/QiGTSnvbVlxPF6P9RMQU6+JP0HJzEJy6QBTa4Und/j0jm24=" file_glob: true file: - "tree-sitter-*.gz" - "target/release/tree-sitter.js" - "target/release/tree-sitter.wasm" draft: true overwrite: true skip_cleanup: true on: tags: true cache: cargo: true directories: - target/emsdk