dist: xenial sudo: required git: depth: 9999999 language: go go_import_path: gopkg.in/src-d/hercules.v10 go: - 1.10.x - 1.11.x services: - docker cache: directories: - $HOME/.cache/pip - $HOME/gopath/src before_cache: - cd $HOME/gopath - mv $HOME/gopath/src/gopkg.in/src-d/hercules.v10/vendor $HOME/gopath/src/gopkg.in/src-d/.vendor - rm -rf $HOME/gopath/src/gopkg.in/src-d/hercules.v10 - mkdir $HOME/gopath/src/gopkg.in/src-d/hercules.v10 - mv $HOME/gopath/src/gopkg.in/src-d/.vendor $HOME/gopath/src/gopkg.in/src-d/hercules.v10/vendor matrix: fast_finish: true allow_failures: - go: tip stages: - test - name: deploy # require any tag name to deploy if: tag =~ .* env: - PROTOC_VERSION=3.6.0 TENSORFLOW_VERSION=1.11.0 before_install: - wget -O protoc.zip https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip - unzip -d ~/.local protoc.zip && rm protoc.zip - go get -v golang.org/x/lint/golint - go get -v github.com/golang/dep/cmd/dep - (wget -O - https://bootstrap.pypa.io/get-pip.py || wget -O - https://raw.githubusercontent.com/pypa/get-pip/master/get-pip.py) | sudo python3 - pip==18.1 - export PATH=~/usr/bin:$GOPATH/bin:$PATH - make --version - pip3 --version - sudo pip3 install cython - sudo pip3 install tensorflow flake8 ./python - docker run -d --privileged -p 9432:9432 --name bblfshd bblfsh/bblfshd - docker exec -it bblfshd bblfshctl driver install python bblfsh/python-driver:latest - docker exec -it bblfshd bblfshctl driver install go bblfsh/go-driver:latest - docker exec -it bblfshd bblfshctl driver install java bblfsh/java-driver:latest - curl -L "https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-$(go env GOOS)-x86_64-$TENSORFLOW_VERSION.tar.gz" | sudo tar -C /usr/local -xz - sudo ldconfig install: - git clean -xfd - travis_retry make TAGS=tensorflow script: - set -e - if [ $TRAVIS_GO_VERSION == "1.11.x" ]; then test -z "$(gofmt -s -l . | grep -v vendor/)"; fi - go vet -tags tensorflow ./... - golint -set_exit_status $(go list ./... | grep -v /vendor/) - cd python && flake8 && cd .. - go test -coverpkg=all -v -coverprofile=coverage.txt -covermode=count gopkg.in/src-d/hercules.v10/... && sed -i '/cmd\/hercules\|core.go/d' coverage.txt - # race checks increase the elapsed time by 10 minutes, we run them only in AppVeyor - $GOPATH/bin/hercules version - $GOPATH/bin/hercules --burndown --couples --devs --quiet --pb https://github.com/src-d/hercules > 1.pb - cp 1.pb 2.pb - $GOPATH/bin/hercules combine 1.pb 2.pb > 12.pb - ($GOPATH/bin/hercules generate-plugin -n MyPlug -o myplug && cd myplug && make) - (cd contrib/_plugin_example && make) - $GOPATH/bin/hercules --burndown --burndown-files --burndown-people --couples --devs --quiet https://github.com/src-d/hercules | labours -m all -o out --backend Agg --disable-projector - $GOPATH/bin/hercules --burndown --burndown-files --burndown-people --couples --devs --quiet --pb https://github.com/src-d/hercules | labours -f pb -m all -o out --backend Agg --disable-projector - # $GOPATH/bin/hercules --sentiment --quiet --languages Python https://github.com/src-d/hercules > /dev/null - set +e - if [ $TRAVIS_GO_VERSION == "1.11.x" ]; then bash <(curl -s https://codecov.io/bash); fi jobs: include: - stage: test addons: false language: generic env: DOCKER_BUILD=1 before_install: skip install: skip script: docker build -t srcd/hercules . - stage: deploy os: osx osx_image: xcode9.3 go: 1.11.x go_import_path: gopkg.in/src-d/hercules.v10 before_install: - wget -O protoc.zip https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-osx-x86_64.zip - unzip -d ~/.local protoc.zip && rm protoc.zip - go get -v github.com/golang/dep/cmd/dep - export PATH=$GOPATH/bin:$PATH after_success: - gzip -S .darwin_amd64.gz $GOPATH/bin/hercules script: skip install: - travis_retry make deploy: provider: releases api_key: secure: $GITHUB_TOKEN file: "$GOPATH/bin/hercules.darwin_amd64.gz" skip_cleanup: true on: tags: true - stage: deploy os: linux go: 1.11.x go_import_path: gopkg.in/src-d/hercules.v10 before_install: - wget -O protoc.zip https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip - unzip -d ~/.local protoc.zip && rm protoc.zip - go get -v github.com/golang/dep/cmd/dep - export PATH=$GOPATH/bin:$PATH - (wget -O - https://bootstrap.pypa.io/get-pip.py || wget -O - https://raw.githubusercontent.com/pypa/get-pip/master/get-pip.py) | sudo python3 - pip==18.1 - sudo pip3 install twine pyopenssl script: - test v$(python3 python/setup.py --version) == $TRAVIS_TAG install: - set -e - travis_retry make - cd python - python3 setup.py bdist_wheel - cp dist/*py3-none-any* $GOPATH/bin - cd .. after_success: - gzip -S .linux_amd64.gz $GOPATH/bin/hercules deploy: - provider: releases api_key: secure: $GITHUB_TOKEN file: "$GOPATH/bin/hercules.linux_amd64.gz" skip_cleanup: true on: tags: true - provider: script script: twine upload $GOPATH/bin/*py3-none-any* -u $PYPI_LOGIN -p $PYPI_PASS skip_cleanup: true on: tags: true notifications: email: false