sudo: false dist: trusty language: go go: - '1.10.x' go_import_path: gopkg.in/src-d/enry.v1 addons: apt: packages: - libonig-dev env: global: - GO_VERSION='1.10.x' - ONIGURUMA=0 stages: - name: test - name: release if: tag IS present jobs: include: - &golang-unit-tests name: 'golang unitTests' stage: test install: - if [ "$ONIGURUMA" == "1" ]; then tags="$tags oniguruma"; fi; go get -v -t --tags "$tags" ./... script: - make test-coverage after_success: - bash <(curl -s https://codecov.io/bash) - <<: *golang-unit-tests name: 'golang unitTests, ONIGURUMA=1' env: ONIGURUMA=1 - name: 'java unitTests' stage: test language: scala jdk: oraclejdk8 install: - gimme version - eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=$GO_VERSION bash)" - go version - go get -v gopkg.in/src-d/enry.v1/... before_script: - cd java - make script: - make test - name: 'linux packages' stage: release script: make packages deploy: provider: releases api_key: secure: $GITHUB_TOKEN file_glob: true file: build/*.tar.gz skip_cleanup: true - name: 'linux shared lib' stage: release script: make linux-shared deploy: provider: release api_key: secure: $GITHUB_TOKEN file: - ./.shared/linux-x86-64/libenry.so skip_cleanup: true - name: 'macOS shared lib' stage: release sudo: true 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 get -v -t ./... - 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 -sSL ${OSXCROSS_URL} | tar -C ${HOME} -xzf - - cd $GOPATH/src/gopkg.in/src-d/enry.v1 script: make darwin-shared deploy: provider: releases api_key: secure: $GITHUB_TOKEN file: ./.shared/darwin/libenry.dylib skip_cleanup: true - name: 'java: publish to maven' stage: release language: scala jdk: oraclejdk8 install: - eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=$GO_VERSION bash)" - go version - go version - go get -v gopkg.in/src-d/enry.v1/... before_script: - cd java - make - curl -o ./shared/linux-x86-64/libenry.so -sL "https://github.com/$TRAVIS_REPO_SLUG/releases/download/$TRAVIS_TAG/libenry.so" - mkdir -p ./shared/darwin - curl -o ./shared/darwin/libenry.dylib -sL "https://github.com/$TRAVIS_REPO_SLUG/releases/download/$TRAVIS_TAG/libenry.dylib" - 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 before_deploy: - rm ./target/enry-java-*-javadoc.jar - rm ./target/enry-java-*-sources.jar - rm ./target/enry-java-*-tests.jar - rm ./target/enry-java-assembly-*.jar deploy: provider: releases api_key: secure: $GITHUB_TOKEN file_glob: true file: ./target/enry-java*.jar skip_cleanup: true