dist: trusty language: go go: - '1.12.x' - '1.11.x' env: global: - GO_VERSION_FOR_JVM='1.11.x' - CGO_ENABLED=0 - GO111MODULE=on - ONIGURUMA_VERSION='6.9.1' matrix: - ONIGURUMA=0 - ONIGURUMA=1 matrix: fast_finish: true stages: - name: test - name: release if: tag IS present - name: publish if: tag IS present stage: test install: - > if [[ "${ONIGURUMA}" -gt 0 ]]; then export CGO_ENABLED=1 export GO_TAGS='oniguruma' # install oniguruma manually as trusty has only ancient 5.x sudo apt-get install -y dpkg # dpkg >= 1.17.5ubuntu5.8 fixes https://bugs.launchpad.net/ubuntu/+source/dpkg/+bug/1730627 wget "http://archive.ubuntu.com/ubuntu/pool/universe/libo/libonig/libonig5_${ONIGURUMA_VERSION}-1_amd64.deb" sudo dpkg -i "libonig5_${ONIGURUMA_VERSION}-1_amd64.deb" wget "http://archive.ubuntu.com/ubuntu/pool/universe/libo/libonig/libonig-dev_${ONIGURUMA_VERSION}-1_amd64.deb" sudo dpkg -i "libonig-dev_${ONIGURUMA_VERSION}-1_amd64.deb" fi; script: - make test-coverage after_success: - bash <(curl -s https://codecov.io/bash) jobs: include: - name: 'java unit-tests' stage: test language: scala jdk: oraclejdk8 install: - export CGO_ENABLED=1 - eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=$GO_VERSION_FOR_JVM bash)" - go version before_script: - cd java - make script: - make test - name: 'linux packages' stage: release install: - go version script: make packages deploy: provider: releases api_key: secure: $GITHUB_TOKEN file_glob: true file: build/*.tar.gz skip_cleanup: true on: tags: true - name: 'linux shared lib' stage: release install: - go version script: make linux-shared deploy: provider: releases api_key: secure: $GITHUB_TOKEN file: - ./.shared/linux-x86-64/libenry.so skip_cleanup: true on: tags: true - name: 'macOS shared lib' stage: release env: - OSXCROSS_PACKAGE="osxcross_3034f7149716d815bc473d0a7b35d17e4cf175aa.tar.gz" - OSXCROSS_URL="https://github.com/bblfsh/client-scala/releases/download/v1.5.2/${OSXCROSS_PACKAGE}" - PATH="/$HOME/osxcross/bin:$PATH" install: - go version - sudo apt-get update - sudo apt-get install -y --no-install-recommends clang g++ gcc gcc-multilib libc6-dev libc6-dev-i386 mingw-w64 patch xz-utils - cd ${HOME} - curl -sfSL ${OSXCROSS_URL} | tar -C ${HOME} -xzf - - cd $GOPATH/src/github.com/src-d/enry script: make darwin-shared deploy: provider: releases api_key: secure: $GITHUB_TOKEN file: ./.shared/darwin/libenry.dylib skip_cleanup: true on: tags: true - name: 'java: publish to maven' stage: publish language: scala jdk: oraclejdk8 install: - export CGO_ENABLED=1 - eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=$GO_VERSION_FOR_JVM bash)" - go version before_script: - cd java - make - curl -o ./shared/linux-x86-64/libenry.so -sfL "https://github.com/$TRAVIS_REPO_SLUG/releases/download/$TRAVIS_TAG/libenry.so" || travis_terminate 1 - mkdir -p ./shared/darwin - curl -o ./shared/darwin/libenry.dylib -sfL "https://github.com/$TRAVIS_REPO_SLUG/releases/download/$TRAVIS_TAG/libenry.dylib" || travis_terminate 1 - openssl aes-256-cbc -K $encrypted_a0e1c69dbbc7_key -iv $encrypted_a0e1c69dbbc7_iv -in key.asc.enc -out key.asc -d - gpg --no-default-keyring --primary-keyring ./project/.gnupg/pubring.gpg --secret-keyring ./project/.gnupg/secring.gpg --keyring ./project/.gnupg/pubring.gpg --fingerprint --import key.asc script: - make test # ensure the shared objects are functional - ./sbt publishLocal - ./sbt publishSigned - ./sbt sonatypeRelease