From b61d5db3d220a8749a9a0299e5559dff37bb7489 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:16:08 -0500 Subject: [PATCH 01/28] Build Java Agent on Travis-CI. --- .travis.yml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 539e4cf805c..cf7eee90d55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,19 @@ dist: precise -language: java -script: mvn verify -jdk: - - oraclejdk7 - - oraclejdk8 -cache: - directories: - - $HOME/.m2 -env: - global: - - secure: "Xs3g5ZOMymPp0EvxF0T0tk5xMaV3htMPii5uDS17z9wDWYg7hj78mrP2cFea0ZjIqIjENG7YuxIjw34yb7507pvIxv8v+QvSkwlzVz4XJNzh2w1gbB2C+oVvbmbFd0A2Pmpf3jvkey6Tk5jhW7lxNVAZ7QzONuAf66iWdi6bwSg=" - - secure: "PBz5Jjoaf33a+Iqv5eJsFHbCYP1ZdeiQvrQBH7hJK5/Kdrbn4GCrDx+RkA58ZC8i8ZHfsW2MkMuD7RphcrgHuB3UwcvHwUgrEZaV1/ypIOe5O8CQ4Z0gkHCj2Ei/dsL3fpDU8WuPJSLa13tsMoQTdGaOhluCuSXpuArx3B3gX28=" -after_success: - - "{ [[ $TRAVIS_BRANCH == 'master' ]] || [[ $TRAVIS_BRANCH == raven-*.x ]]; } && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" +matrix: + include: + - language: java + jdk: + - oraclejdk7 + - oraclejdk8 + script: mvn verify + cache: + directories: + - $HOME/.m2 + env: + global: + - secure: "Xs3g5ZOMymPp0EvxF0T0tk5xMaV3htMPii5uDS17z9wDWYg7hj78mrP2cFea0ZjIqIjENG7YuxIjw34yb7507pvIxv8v+QvSkwlzVz4XJNzh2w1gbB2C+oVvbmbFd0A2Pmpf3jvkey6Tk5jhW7lxNVAZ7QzONuAf66iWdi6bwSg=" + - secure: "PBz5Jjoaf33a+Iqv5eJsFHbCYP1ZdeiQvrQBH7hJK5/Kdrbn4GCrDx+RkA58ZC8i8ZHfsW2MkMuD7RphcrgHuB3UwcvHwUgrEZaV1/ypIOe5O8CQ4Z0gkHCj2Ei/dsL3fpDU8WuPJSLa13tsMoQTdGaOhluCuSXpuArx3B3gX28=" + after_success: + - "{ [[ $TRAVIS_BRANCH == 'master' ]] || [[ $TRAVIS_BRANCH == raven-*.x ]]; } && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" + - language: cpp + script: cd agent && cmake CMakeLists.txt && make From 47b60c1ebed7ab39085c353e38dec6953d56ac6e Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:27:35 -0500 Subject: [PATCH 02/28] Try C++ as the only include. --- .travis.yml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index cf7eee90d55..fe0790a79ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,19 +1,23 @@ dist: precise + +language: java +jdk: + - oraclejdk7 + - oraclejdk8 +script: mvn verify +cache: + directories: + - $HOME/.m2 +env: + global: + - secure: "Xs3g5ZOMymPp0EvxF0T0tk5xMaV3htMPii5uDS17z9wDWYg7hj78mrP2cFea0ZjIqIjENG7YuxIjw34yb7507pvIxv8v+QvSkwlzVz4XJNzh2w1gbB2C+oVvbmbFd0A2Pmpf3jvkey6Tk5jhW7lxNVAZ7QzONuAf66iWdi6bwSg=" + - secure: "PBz5Jjoaf33a+Iqv5eJsFHbCYP1ZdeiQvrQBH7hJK5/Kdrbn4GCrDx+RkA58ZC8i8ZHfsW2MkMuD7RphcrgHuB3UwcvHwUgrEZaV1/ypIOe5O8CQ4Z0gkHCj2Ei/dsL3fpDU8WuPJSLa13tsMoQTdGaOhluCuSXpuArx3B3gX28=" +after_success: + - "{ [[ $TRAVIS_BRANCH == 'master' ]] || [[ $TRAVIS_BRANCH == raven-*.x ]]; } && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" + matrix: include: - - language: java - jdk: - - oraclejdk7 - - oraclejdk8 - script: mvn verify - cache: - directories: - - $HOME/.m2 - env: - global: - - secure: "Xs3g5ZOMymPp0EvxF0T0tk5xMaV3htMPii5uDS17z9wDWYg7hj78mrP2cFea0ZjIqIjENG7YuxIjw34yb7507pvIxv8v+QvSkwlzVz4XJNzh2w1gbB2C+oVvbmbFd0A2Pmpf3jvkey6Tk5jhW7lxNVAZ7QzONuAf66iWdi6bwSg=" - - secure: "PBz5Jjoaf33a+Iqv5eJsFHbCYP1ZdeiQvrQBH7hJK5/Kdrbn4GCrDx+RkA58ZC8i8ZHfsW2MkMuD7RphcrgHuB3UwcvHwUgrEZaV1/ypIOe5O8CQ4Z0gkHCj2Ei/dsL3fpDU8WuPJSLa13tsMoQTdGaOhluCuSXpuArx3B3gX28=" - after_success: - - "{ [[ $TRAVIS_BRANCH == 'master' ]] || [[ $TRAVIS_BRANCH == raven-*.x ]]; } && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" - language: cpp script: cd agent && cmake CMakeLists.txt && make + cache: false + after_success: true From 9f69bb26a9abd4ac91f88374522a4e4c0b189c1a Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:33:10 -0500 Subject: [PATCH 03/28] Set dist. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index fe0790a79ab..84f128a7d16 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ after_success: matrix: include: - language: cpp + dist: trusty script: cd agent && cmake CMakeLists.txt && make cache: false after_success: true From 947213ef7b9817d22d088250776d6cad3f77d7c3 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:36:57 -0500 Subject: [PATCH 04/28] Matrix tweaks. --- .travis.yml | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 84f128a7d16..1aa16cc21cb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,24 +1,29 @@ -dist: precise - -language: java -jdk: - - oraclejdk7 - - oraclejdk8 -script: mvn verify -cache: - directories: - - $HOME/.m2 env: global: - secure: "Xs3g5ZOMymPp0EvxF0T0tk5xMaV3htMPii5uDS17z9wDWYg7hj78mrP2cFea0ZjIqIjENG7YuxIjw34yb7507pvIxv8v+QvSkwlzVz4XJNzh2w1gbB2C+oVvbmbFd0A2Pmpf3jvkey6Tk5jhW7lxNVAZ7QzONuAf66iWdi6bwSg=" - secure: "PBz5Jjoaf33a+Iqv5eJsFHbCYP1ZdeiQvrQBH7hJK5/Kdrbn4GCrDx+RkA58ZC8i8ZHfsW2MkMuD7RphcrgHuB3UwcvHwUgrEZaV1/ypIOe5O8CQ4Z0gkHCj2Ei/dsL3fpDU8WuPJSLa13tsMoQTdGaOhluCuSXpuArx3B3gX28=" + after_success: - "{ [[ $TRAVIS_BRANCH == 'master' ]] || [[ $TRAVIS_BRANCH == raven-*.x ]]; } && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" matrix: include: + - language: java + dist: precise + jdk: oraclejdk7 + script: env | sort && mvn verify + cache: + directories: + - $HOME/.m2 + - language: java + dist: precise + jdk: oraclejdk8 + script: env | sort && mvn verify + cache: + directories: + - $HOME/.m2 - language: cpp dist: trusty - script: cd agent && cmake CMakeLists.txt && make + script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false after_success: true From 4619418601b30d6421739514706377d16a0daab3 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:40:12 -0500 Subject: [PATCH 05/28] Adjust cmake minimum. --- .travis.yml | 2 +- agent/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1aa16cc21cb..5c94c288d90 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ env: - secure: "PBz5Jjoaf33a+Iqv5eJsFHbCYP1ZdeiQvrQBH7hJK5/Kdrbn4GCrDx+RkA58ZC8i8ZHfsW2MkMuD7RphcrgHuB3UwcvHwUgrEZaV1/ypIOe5O8CQ4Z0gkHCj2Ei/dsL3fpDU8WuPJSLa13tsMoQTdGaOhluCuSXpuArx3B3gX28=" after_success: - - "{ [[ $TRAVIS_BRANCH == 'master' ]] || [[ $TRAVIS_BRANCH == raven-*.x ]]; } && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" + - "[[ $TRAVIS_BRANCH == 'master' ]] && { python .travis/addServer.py; mvn clean deploy --settings $HOME/.m2/mySettings.xml; };" matrix: include: diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index 4da94877df2..e3dea9fff8d 100644 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.7) +cmake_minimum_required(VERSION 3.2) project(sentry_java_agent) set(CMAKE_CXX_STANDARD 14) From c1017bd5e27c52fb1583bddc2ba341e213a2ffb8 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:41:12 -0500 Subject: [PATCH 06/28] Disable Java builds for speed (temporarily). --- .travis.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5c94c288d90..bedefed9803 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,20 +8,20 @@ after_success: matrix: include: - - language: java - dist: precise - jdk: oraclejdk7 - script: env | sort && mvn verify - cache: - directories: - - $HOME/.m2 - - language: java - dist: precise - jdk: oraclejdk8 - script: env | sort && mvn verify - cache: - directories: - - $HOME/.m2 +# - language: java +# dist: precise +# jdk: oraclejdk7 +# script: env | sort && mvn verify +# cache: +# directories: +# - $HOME/.m2 +# - language: java +# dist: precise +# jdk: oraclejdk8 +# script: env | sort && mvn verify +# cache: +# directories: +# - $HOME/.m2 - language: cpp dist: trusty script: env | sort && cd agent && cmake CMakeLists.txt && make From cce687af2773b6486890e6df173621bf93b3aa9e Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:47:15 -0500 Subject: [PATCH 07/28] Add before_install. --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index bedefed9803..78a0c250ea2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,9 @@ matrix: # directories: # - $HOME/.m2 - language: cpp + before_install: + - sudo apt-get update -qq + - sudo apt-get install -qq oraclejdk8 dist: trusty script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false From 20bb85ac10620869ea96b42106e4420d5f9472ac Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 10:55:52 -0500 Subject: [PATCH 08/28] Try openjdk7 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 78a0c250ea2..9dc66ad649b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ matrix: - language: cpp before_install: - sudo apt-get update -qq - - sudo apt-get install -qq oraclejdk8 + - sudo apt-get install -qq openjdk-7-jdk dist: trusty script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false From b8055d96eb87d686cec345b380b39291707c23b5 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:04:05 -0500 Subject: [PATCH 09/28] Include linux headers. --- .travis.yml | 4 +--- agent/CMakeLists.txt | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9dc66ad649b..b1de5b516c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,10 +23,8 @@ matrix: # directories: # - $HOME/.m2 - language: cpp - before_install: - - sudo apt-get update -qq - - sudo apt-get install -qq openjdk-7-jdk dist: trusty + jdk: oraclejdk7 script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false after_success: true diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index e3dea9fff8d..900688317aa 100644 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -10,4 +10,6 @@ include_directories($ENV{JAVA_HOME}/include) if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") include_directories($ENV{JAVA_HOME}/include/darwin) +elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") + include_directories($ENV{JAVA_HOME}/include/linux) endif() From 65a4acd6c0f06fd4fd5f5d40469674ec42fbee8c Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:08:10 -0500 Subject: [PATCH 10/28] Include cstring. --- agent/agent.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/agent/agent.cpp b/agent/agent.cpp index cbaba70cba3..fef82031e49 100644 --- a/agent/agent.cpp +++ b/agent/agent.cpp @@ -6,6 +6,7 @@ #include "jvmti.h" #include +#include #include "lib.h" extern Level LOG_LEVEL; From 071adf2d85979e61720144d3023e5a9f2f77c341 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:13:11 -0500 Subject: [PATCH 11/28] Try os x. --- .travis.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b1de5b516c9..4a764b27036 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,8 +22,16 @@ matrix: # cache: # directories: # - $HOME/.m2 +# - language: cpp +# dist: trusty +# jdk: oraclejdk7 +# script: env | sort && cd agent && cmake CMakeLists.txt && make +# cache: false +# after_success: true - language: cpp - dist: trusty + os: osx + # Build on older OS X for more portable binaries + osx_image: xcode6.4 jdk: oraclejdk7 script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false From f95082d2c4d29a68d0212bf3cf5903326c1d48e2 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:31:13 -0500 Subject: [PATCH 12/28] test 32 bit --- .travis.yml | 10 +--------- agent/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4a764b27036..b1de5b516c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,16 +22,8 @@ matrix: # cache: # directories: # - $HOME/.m2 -# - language: cpp -# dist: trusty -# jdk: oraclejdk7 -# script: env | sort && cd agent && cmake CMakeLists.txt && make -# cache: false -# after_success: true - language: cpp - os: osx - # Build on older OS X for more portable binaries - osx_image: xcode6.4 + dist: trusty jdk: oraclejdk7 script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index 900688317aa..ba2d8034949 100644 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -5,6 +5,7 @@ set(CMAKE_CXX_STANDARD 14) set(SOURCE_FILES agent.cpp lib.cpp lib.h) add_library(sentry_agent SHARED ${SOURCE_FILES}) +set_target_properties(mylib PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") include_directories($ENV{JAVA_HOME}/include) From 8101e2e59b41b5c87a180540ab62e3039c18b5bf Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:32:52 -0500 Subject: [PATCH 13/28] fix lib name --- agent/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index ba2d8034949..b48b23e5e5a 100644 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -5,7 +5,7 @@ set(CMAKE_CXX_STANDARD 14) set(SOURCE_FILES agent.cpp lib.cpp lib.h) add_library(sentry_agent SHARED ${SOURCE_FILES}) -set_target_properties(mylib PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") +set_target_properties(sentry_agent PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") include_directories($ENV{JAVA_HOME}/include) From 3c11e38d0ec7ea9f9d1eff869e734300bc4b48c4 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:36:02 -0500 Subject: [PATCH 14/28] add multilib --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index b1de5b516c9..511602556cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,9 @@ matrix: - language: cpp dist: trusty jdk: oraclejdk7 + before_install: + - sudo apt-get -qq update + - sudo apt-get install -y g++-multilib script: env | sort && cd agent && cmake CMakeLists.txt && make cache: false after_success: true From 9c01e494c6a2200d658567507f1531e51986037a Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:38:06 -0500 Subject: [PATCH 15/28] file --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 511602556cf..8b0a525340f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,6 @@ matrix: before_install: - sudo apt-get -qq update - sudo apt-get install -y g++-multilib - script: env | sort && cd agent && cmake CMakeLists.txt && make + script: env | sort && cd agent && cmake CMakeLists.txt && make && file libsentry_agent.so cache: false after_success: true From 1467c4293480a6a50f0d06707f051b818b4c4025 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 11:42:28 -0500 Subject: [PATCH 16/28] branch on target --- agent/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index b48b23e5e5a..d4f98160fdd 100644 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -5,7 +5,10 @@ set(CMAKE_CXX_STANDARD 14) set(SOURCE_FILES agent.cpp lib.cpp lib.h) add_library(sentry_agent SHARED ${SOURCE_FILES}) -set_target_properties(sentry_agent PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") + +if(ENV{TARGET} MATCHES "i686") + set_target_properties(sentry_agent PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") +endif() include_directories($ENV{JAVA_HOME}/include) From c5f15cc30a40333a87d47102d6d111105f758a24 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 12:13:00 -0500 Subject: [PATCH 17/28] build both arch --- .travis.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8b0a525340f..0005725279a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,23 @@ matrix: before_install: - sudo apt-get -qq update - sudo apt-get install -y g++-multilib - script: env | sort && cd agent && cmake CMakeLists.txt && make && file libsentry_agent.so + script: + - cd agent + cmake CMakeLists.txt + make + mv libsentry_agent.so libsentry_agent_linux-x86_64.so + TARGET=i686 cmake CMakeLists.txt + make + mv libsentry_agent.so libsentry_agent_linux-i686.so + ls -lh + file libsentry_agent_linux-x86_64.so + file libsentry_agent_linux-i686.so cache: false after_success: true + +deploy: + provider: script + script: .ci/deploy.sh + skip_cleanup: true + on: + tags: true \ No newline at end of file From 3912918660d29ac41ef1697460acd9b7ed0decf3 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 12:28:48 -0500 Subject: [PATCH 18/28] Switch to build script --- .ci/build.sh | 17 +++++++++++++++++ .travis.yml | 12 +----------- 2 files changed, 18 insertions(+), 11 deletions(-) create mode 100755 .ci/build.sh diff --git a/.ci/build.sh b/.ci/build.sh new file mode 100755 index 00000000000..9f47a71a5a4 --- /dev/null +++ b/.ci/build.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash -ev + +pushd agent + +cmake CMakeLists.txt +make +mv libsentry_agent.so libsentry_agent_linux-x86_64.so + +TARGET=i686 cmake CMakeLists.txt +make +mv libsentry_agent.so libsentry_agent_linux-i686.so + +ls -lh +file libsentry_agent_linux-x86_64.so +file libsentry_agent_linux-i686.so + +popd \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 0005725279a..17d1cb960c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,17 +28,7 @@ matrix: before_install: - sudo apt-get -qq update - sudo apt-get install -y g++-multilib - script: - - cd agent - cmake CMakeLists.txt - make - mv libsentry_agent.so libsentry_agent_linux-x86_64.so - TARGET=i686 cmake CMakeLists.txt - make - mv libsentry_agent.so libsentry_agent_linux-i686.so - ls -lh - file libsentry_agent_linux-x86_64.so - file libsentry_agent_linux-i686.so + script: ./ci/build.sh cache: false after_success: true From b39de9cd6f735449de5a5d0d950c86e0a53b0ad0 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 12:37:45 -0500 Subject: [PATCH 19/28] path --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 17d1cb960c7..2253119bc75 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ matrix: before_install: - sudo apt-get -qq update - sudo apt-get install -y g++-multilib - script: ./ci/build.sh + script: .ci/build.sh cache: false after_success: true From 63bd4830e1771b8be6373e9f01ac3993d81eb1f2 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 12:39:46 -0500 Subject: [PATCH 20/28] adjust shebang --- .ci/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.ci/build.sh b/.ci/build.sh index 9f47a71a5a4..c75a071bc9a 100755 --- a/.ci/build.sh +++ b/.ci/build.sh @@ -1,4 +1,6 @@ -#!/usr/bin/env bash -ev +#!/bin/bash + +set -ev pushd agent From 287af13159a50f3b589a6e12d655099ee60bf19e Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 12:46:41 -0500 Subject: [PATCH 21/28] Fix arch --- agent/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt index d4f98160fdd..0b8268a4011 100644 --- a/agent/CMakeLists.txt +++ b/agent/CMakeLists.txt @@ -6,7 +6,8 @@ set(CMAKE_CXX_STANDARD 14) set(SOURCE_FILES agent.cpp lib.cpp lib.h) add_library(sentry_agent SHARED ${SOURCE_FILES}) -if(ENV{TARGET} MATCHES "i686") +if($ENV{TARGET} MATCHES "i686") + message("Setting target to 32-bit.") set_target_properties(sentry_agent PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") endif() From 54c6297b93e47f35562901beeffd788e1469a3f3 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 14:44:53 -0500 Subject: [PATCH 22/28] Add agent deploy. --- .ci/agent-build.sh | 15 ++++++ .ci/agent-deploy.sh | 12 +++++ .ci/agent-install.sh | 6 +++ .ci/agent-upload-release.py | 93 +++++++++++++++++++++++++++++++++++++ .ci/build.sh | 19 -------- .travis.yml | 17 +++++-- 6 files changed, 138 insertions(+), 24 deletions(-) create mode 100755 .ci/agent-build.sh create mode 100755 .ci/agent-deploy.sh create mode 100755 .ci/agent-install.sh create mode 100644 .ci/agent-upload-release.py delete mode 100755 .ci/build.sh diff --git a/.ci/agent-build.sh b/.ci/agent-build.sh new file mode 100755 index 00000000000..b88658dba3c --- /dev/null +++ b/.ci/agent-build.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -ex + +pushd agent + +DEST=libsentry_agent_linux-$TARGET.so + +cmake CMakeLists.txt +make + +mv libsentry_agent.so $DEST +file $DEST + +popd \ No newline at end of file diff --git a/.ci/agent-deploy.sh b/.ci/agent-deploy.sh new file mode 100755 index 00000000000..121b16f443c --- /dev/null +++ b/.ci/agent-deploy.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -ex + +[[ $TRAVIS_LANGUAGE == "cpp" ]] || (echo "Not a C++ run, exiting." && exit 0;) + +pushd agent + +pip install --user requests==2.18.2 +python .ci/upload-agent-release.py + +popd \ No newline at end of file diff --git a/.ci/agent-install.sh b/.ci/agent-install.sh new file mode 100755 index 00000000000..f00fd4a9363 --- /dev/null +++ b/.ci/agent-install.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +set -ex + +sudo apt-get -qq update +sudo apt-get install -y g++-multilib diff --git a/.ci/agent-upload-release.py b/.ci/agent-upload-release.py new file mode 100644 index 00000000000..f1ce22ae50d --- /dev/null +++ b/.ci/agent-upload-release.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python + +import os +import sys +import urlparse +import requests + +try: + from requests.packages import urllib3 + urllib3.disable_warnings() +except ImportError: + pass + + +AUTH_USERNAME = 'getsentry-bot' +AUTH_TOKEN = os.environ['GITHUB_AUTH_TOKEN'] +AUTH = (AUTH_USERNAME, AUTH_TOKEN) +TAG = os.environ.get('TRAVIS_TAG') +TARGET = os.environ.get('TARGET') +LIB = 'libsentry_agent_%(target)s.%(ext)s' +EXT = 'so' +BIN_TYPE = os.environ.get('BIN_TYPE', 'release') +REPO = 'getsentry/sentry-java' + + +def log(message, *args): + if args: + message = message % args + print >> sys.stderr, message + + +def api_request(method, path, **kwargs): + url = urlparse.urljoin('https://api.github.com/', path.lstrip('/')) + # default travis python does not have SNI + return requests.request(method, url, auth=AUTH, verify=False, **kwargs) + + +def find_executable(): + path = LIB % {'target': TARGET, 'ext': EXT} + if os.path.isfile(path): + log('Executable: ' + path) + return path + + +def ensure_release(): + resp = api_request('GET', 'repos/%s/releases' % REPO) + resp.raise_for_status() + for release in resp.json(): + if release['tag_name'] == TAG: + log('Found already existing release %s' % release['id']) + return release + resp = api_request('POST', 'repos/%s/releases' % REPO, json={ + 'tag_name': TAG, + 'name': 'sentry-java-agent %s' % TAG, + 'draft': True, + }) + resp.raise_for_status() + release = resp.json() + log('Created new release %s' % release['id']) + return release + + +def upload_asset(release, executable, target_name): + resp = api_request('GET', release['assets_url']) + resp.raise_for_status() + for asset in resp.json(): + if asset['name'] == target_name: + log('Already have release asset %s. Skipping' % target_name) + return + + upload_url = release['upload_url'].split('{')[0] + with open(executable, 'rb') as f: + log('Creating new release asset %s.' % target_name) + resp = api_request('POST', upload_url, + params={'name': target_name}, + headers={'Content-Type': 'application/octet-stream'}, + data=f) + resp.raise_for_status() + + +def main(): + if not TAG: + return log('No tag specified. Doing nothing.') + executable = find_executable() + if executable is None: + return log('Could not locate executable. Doing nothing.') + + release = ensure_release() + upload_asset(release, executable, executable) + + +if __name__ == '__main__': + main() diff --git a/.ci/build.sh b/.ci/build.sh deleted file mode 100755 index c75a071bc9a..00000000000 --- a/.ci/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -ev - -pushd agent - -cmake CMakeLists.txt -make -mv libsentry_agent.so libsentry_agent_linux-x86_64.so - -TARGET=i686 cmake CMakeLists.txt -make -mv libsentry_agent.so libsentry_agent_linux-i686.so - -ls -lh -file libsentry_agent_linux-x86_64.so -file libsentry_agent_linux-i686.so - -popd \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 2253119bc75..563205a3014 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,16 +25,23 @@ matrix: - language: cpp dist: trusty jdk: oraclejdk7 - before_install: - - sudo apt-get -qq update - - sudo apt-get install -y g++-multilib - script: .ci/build.sh + env: TARGET=x86_64 + before_install: .ci/agent-install.sh + script: .ci/agent-build.sh + cache: false + after_success: true + - language: cpp + dist: trusty + jdk: oraclejdk7 + env: TARGET=i686 + before_install: .ci/agent-install.sh + script: .ci/agent-build.sh cache: false after_success: true deploy: provider: script - script: .ci/deploy.sh + script: .ci/agent-deploy.sh skip_cleanup: true on: tags: true \ No newline at end of file From 4009abc7f55c41d4bbddb6c490bc69fa3af2a072 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 14:47:50 -0500 Subject: [PATCH 23/28] Fix deploy path --- .ci/agent-deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/agent-deploy.sh b/.ci/agent-deploy.sh index 121b16f443c..aeb089cd01a 100755 --- a/.ci/agent-deploy.sh +++ b/.ci/agent-deploy.sh @@ -7,6 +7,6 @@ set -ex pushd agent pip install --user requests==2.18.2 -python .ci/upload-agent-release.py +python .ci/agent-upload-release.py popd \ No newline at end of file From c5b60d863bda76d0d9f3014b07f9f8012054dde4 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 14:49:55 -0500 Subject: [PATCH 24/28] fix path --- .ci/agent-deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/agent-deploy.sh b/.ci/agent-deploy.sh index aeb089cd01a..7dbb54d0a07 100755 --- a/.ci/agent-deploy.sh +++ b/.ci/agent-deploy.sh @@ -7,6 +7,6 @@ set -ex pushd agent pip install --user requests==2.18.2 -python .ci/agent-upload-release.py +python agent-upload-release.py popd \ No newline at end of file From 980aab081b0ba1ebd292de431ba3f3023b47c3c7 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 14:52:10 -0500 Subject: [PATCH 25/28] add find --- .ci/agent-deploy.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.ci/agent-deploy.sh b/.ci/agent-deploy.sh index 7dbb54d0a07..cdeae79151c 100755 --- a/.ci/agent-deploy.sh +++ b/.ci/agent-deploy.sh @@ -7,6 +7,7 @@ set -ex pushd agent pip install --user requests==2.18.2 +find . python agent-upload-release.py popd \ No newline at end of file From f2bbbe52af0e96eacaf8a3134e44000a7d946797 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 14:54:37 -0500 Subject: [PATCH 26/28] fix path --- .ci/agent-deploy.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.ci/agent-deploy.sh b/.ci/agent-deploy.sh index cdeae79151c..c36507b150e 100755 --- a/.ci/agent-deploy.sh +++ b/.ci/agent-deploy.sh @@ -7,7 +7,6 @@ set -ex pushd agent pip install --user requests==2.18.2 -find . -python agent-upload-release.py +python ../.ci/agent-upload-release.py popd \ No newline at end of file From 40b39df695f1e88083c753c60dfd80f352d3747a Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 15:01:15 -0500 Subject: [PATCH 27/28] fix path, log more. --- .ci/agent-upload-release.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/agent-upload-release.py b/.ci/agent-upload-release.py index f1ce22ae50d..0018b40deaf 100644 --- a/.ci/agent-upload-release.py +++ b/.ci/agent-upload-release.py @@ -17,7 +17,7 @@ AUTH = (AUTH_USERNAME, AUTH_TOKEN) TAG = os.environ.get('TRAVIS_TAG') TARGET = os.environ.get('TARGET') -LIB = 'libsentry_agent_%(target)s.%(ext)s' +LIB = 'libsentry_agent_linux-%(target)s.%(ext)s' EXT = 'so' BIN_TYPE = os.environ.get('BIN_TYPE', 'release') REPO = 'getsentry/sentry-java' @@ -37,8 +37,8 @@ def api_request(method, path, **kwargs): def find_executable(): path = LIB % {'target': TARGET, 'ext': EXT} + log("Checking for executable: " + path) if os.path.isfile(path): - log('Executable: ' + path) return path From dcefd99df2f6d68a79efe46c140b6fee389ff266 Mon Sep 17 00:00:00 2001 From: Brett Hoerner Date: Fri, 28 Jul 2017 15:17:40 -0500 Subject: [PATCH 28/28] add back java --- .travis.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 563205a3014..941bfbfa77f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,20 +8,20 @@ after_success: matrix: include: -# - language: java -# dist: precise -# jdk: oraclejdk7 -# script: env | sort && mvn verify -# cache: -# directories: -# - $HOME/.m2 -# - language: java -# dist: precise -# jdk: oraclejdk8 -# script: env | sort && mvn verify -# cache: -# directories: -# - $HOME/.m2 + - language: java + dist: precise + jdk: oraclejdk7 + script: env | sort && mvn verify + cache: + directories: + - $HOME/.m2 + - language: java + dist: precise + jdk: oraclejdk8 + script: env | sort && mvn verify + cache: + directories: + - $HOME/.m2 - language: cpp dist: trusty jdk: oraclejdk7