tree-sitter/.travis.yml
2020-12-01 11:04:06 -08:00

70 lines
1.5 KiB
YAML

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 12
- nvm use 12
# 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
- 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"
draft: true
overwrite: true
skip_cleanup: true
on:
tags: true
cache:
cargo: true
directories:
- target/emsdk