updated JNI build, added unit test targets to Jenkinsfile

This commit is contained in:
Joseph Henry
2016-11-04 14:23:57 -07:00
parent e864c333fc
commit 47ca4b7f67
5 changed files with 72 additions and 49 deletions

98
Jenkinsfile vendored
View File

@@ -10,10 +10,9 @@ parallel 'centos7': {
// --------------------------- Network Stacks (Linux) --------------------------- // --------------------------- Network Stacks (Linux) ---------------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// (lwIP IPv4)
try { try {
checkout scm checkout scm
stage('lwIP IPv4') { stage('linux lwIP IPv4') {
sh 'make clean; make lwip SDK_IPV4=1' sh 'make clean; make lwip SDK_IPV4=1'
} }
} }
@@ -22,11 +21,9 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// (lwIP IPv6)
try { try {
checkout scm checkout scm
stage('lwIP IPv6') { stage('linux lwIP IPv6') {
sh 'make clean; make lwip SDK_IPV6=1' sh 'make clean; make lwip SDK_IPV6=1'
} }
} }
@@ -35,11 +32,9 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// (picoTCP IPv4)
try { try {
checkout scm checkout scm
stage('picoTCP IPv4') { stage('linux picoTCP IPv4') {
sh 'make clean; make pico SDK_IPV4=1' sh 'make clean; make pico SDK_IPV4=1'
} }
} }
@@ -48,11 +43,9 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// (picoTCP IPv6)
try { try {
checkout scm checkout scm
stage('picoTCP IPv6') { stage('linux picoTCP IPv6') {
sh 'make clean; make pico SDK_IPV6=1' sh 'make clean; make pico SDK_IPV6=1'
} }
} }
@@ -66,7 +59,6 @@ parallel 'centos7': {
// ------------------------ SDK Service Library (Linux) ------------------------- // ------------------------ SDK Service Library (Linux) -------------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// service (lwIP IPv4)
try { try {
checkout scm checkout scm
stage('linux_sdk_service (lwIP IPv4)') { stage('linux_sdk_service (lwIP IPv4)') {
@@ -78,8 +70,6 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// service (lwIP IPv6)
try { try {
checkout scm checkout scm
stage('linux_sdk_service (lwIP IPv6)') { stage('linux_sdk_service (lwIP IPv6)') {
@@ -91,8 +81,6 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// service (picoTCP IPv4)
try { try {
checkout scm checkout scm
stage('linux_sdk_service (picoTCP IPv4)') { stage('linux_sdk_service (picoTCP IPv4)') {
@@ -104,8 +92,6 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// service (picoTCP IPv6)
try { try {
checkout scm checkout scm
stage('linux_sdk_service (picoTCP IPv6)') { stage('linux_sdk_service (picoTCP IPv6)') {
@@ -122,7 +108,6 @@ parallel 'centos7': {
// --------------------------- Intercept Library (Linux) ------------------------ // --------------------------- Intercept Library (Linux) ------------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// intercept
try { try {
checkout scm checkout scm
stage('linux_intercept') { stage('linux_intercept') {
@@ -134,6 +119,23 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// ------------------------------------------------------------------------------
// ------------------------------ Unit tests (linux) ----------------------------
// ------------------------------------------------------------------------------
try {
checkout scm
stage('linux tests') {
sh 'make tests'
}
}
catch (err) {
currentBuild.result = "FAILURE"
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on centos7 (<${env.BUILD_URL}|Open>)"
throw err
}
} }
}, 'macOS': { }, 'macOS': {
node('macOS') { node('macOS') {
@@ -144,10 +146,9 @@ parallel 'centos7': {
// --------------------------- Network Stacks (macOS) --------------------------- // --------------------------- Network Stacks (macOS) ---------------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// (lwIP IPv4)
try { try {
checkout scm checkout scm
stage('lwIP IPv4') { stage('macOS lwIP IPv4') {
sh 'make clean; make lwip SDK_IPV4=1' sh 'make clean; make lwip SDK_IPV4=1'
} }
} }
@@ -156,11 +157,9 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// (lwIP IPv6)
try { try {
checkout scm checkout scm
stage('lwIP IPv6') { stage('macOS lwIP IPv6') {
sh 'make clean; make lwip SDK_IPV6=1' sh 'make clean; make lwip SDK_IPV6=1'
} }
} }
@@ -169,11 +168,9 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// (picoTCP IPv4)
try { try {
checkout scm checkout scm
stage('picoTCP IPv4') { stage('macOS picoTCP IPv4') {
sh 'make clean; make pico SDK_IPV4=1' sh 'make clean; make pico SDK_IPV4=1'
} }
} }
@@ -182,11 +179,9 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// (picoTCP IPv6)
try { try {
checkout scm checkout scm
stage('picoTCP IPv6') { stage('macOS picoTCP IPv6') {
sh 'make clean; make pico SDK_IPV6=1' sh 'make clean; make pico SDK_IPV6=1'
} }
} }
@@ -201,7 +196,6 @@ parallel 'centos7': {
// -------------------------- Intercept Library (macOS) ------------------------- // -------------------------- Intercept Library (macOS) -------------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// osx_intercept
try { try {
checkout scm checkout scm
stage('osx_intercept') { stage('osx_intercept') {
@@ -218,7 +212,6 @@ parallel 'centos7': {
// -------------------------- SDK Service Library (macOS) ----------------------- // -------------------------- SDK Service Library (macOS) -----------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// osx_service_and_intercept
try { try {
checkout scm checkout scm
stage('osx_service_and_intercept (lwIP IPv4)') { stage('osx_service_and_intercept (lwIP IPv4)') {
@@ -230,7 +223,6 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
try { try {
checkout scm checkout scm
stage('osx_service_and_intercept (lwIP IPv6)') { stage('osx_service_and_intercept (lwIP IPv6)') {
@@ -242,8 +234,6 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
try { try {
checkout scm checkout scm
stage('osx_service_and_intercept (picoTCP IPv4)') { stage('osx_service_and_intercept (picoTCP IPv4)') {
@@ -269,10 +259,9 @@ parallel 'centos7': {
} }
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// -------------------------- App Frameworks (macOS/iOS) ------------------------ // ---------------------------- App Frameworks (macOS) --------------------------
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// osx_app_framework
try { try {
checkout scm checkout scm
stage('macOS App Framework') { stage('macOS App Framework') {
@@ -284,8 +273,6 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// ios_app_framework
try { try {
checkout scm checkout scm
stage('iOS App Framework') { stage('iOS App Framework') {
@@ -297,6 +284,39 @@ parallel 'centos7': {
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on iOS (<${env.BUILD_URL}|Open>)" slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on iOS (<${env.BUILD_URL}|Open>)"
throw err throw err
} }
// ------------------------------------------------------------------------------
// --------------------------- Android JNI Lib (macOS) --------------------------
// ------------------------------------------------------------------------------
//try {
// checkout scm
// stage('macOS android_jni_lib') {
// sh 'make android_jni_lib SDK_LWIP=1 SDK_IPV4=1'
// }
//}
//catch (err) {
// currentBuild.result = "FAILURE"
// slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
// throw err
//}
// ------------------------------------------------------------------------------
// ------------------------------ Unit tests (macOS) ----------------------------
// ------------------------------------------------------------------------------
try {
checkout scm
stage('macOS tests') {
sh 'make tests'
}
}
catch (err) {
currentBuild.result = "FAILURE"
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err
}
} }
} }

View File

@@ -8,23 +8,26 @@ ZT := ../../../../../zerotierone
LOCAL_MODULE := ZeroTierOneJNI LOCAL_MODULE := ZeroTierOneJNI
LOCAL_C_INCLUDES := $(ZT1)/include LOCAL_C_INCLUDES := $(ZT1)/include
LOCAL_C_INCLUDES += $(ZT1)/ext/lwip/src/include LOCAL_C_INCLUDES += $(ZT1)/ext/lwip/src/include
LOCAL_C_INCLUDES += $(ZT1)/ext/lwip/src/include/ipv4 LOCAL_C_INCLUDES += $(ZT1)/ext/lwip/src/include/lwip
LOCAL_C_INCLUDES += $(ZT1)/ext/lwip/src/include/lwip/priv
LOCAL_C_INCLUDES += $(ZT1)/node LOCAL_C_INCLUDES += $(ZT1)/node
LOCAL_C_INCLUDES += $(ZT1)/ LOCAL_C_INCLUDES += $(ZT1)/
LOCAL_C_INCLUDES += $(ZT1)/service LOCAL_C_INCLUDES += $(ZT1)/service
LOCAL_C_INCLUDES += $(ZT1)/osdep LOCAL_C_INCLUDES += $(ZT1)/osdep
LOCAL_C_INCLUDES += $(ZTSDK)/src LOCAL_C_INCLUDES += $(ZTSDK)/src
LOCAL_C_INCLUDES += $(ZTSDK)/stack_drivers/lwip
LOCAL_LDLIBS := -llog LOCAL_LDLIBS := -llog
# LOCAL_CFLAGS := -g # LOCAL_CFLAGS := -g
# Netcon files # Netcon files
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
$(ZTSDK)/SDK_RPC.c \ $(ZTSDK)/rpc.c \
$(ZTSDK)/SDK_Proxy.cpp \ $(ZTSDK)/proxy.cpp \
$(ZTSDK)/SDK_Sockets.c \ $(ZTSDK)/sockets.c \
$(ZTSDK)/SDK_Service.cpp \ $(ZTSDK)/service.cpp \
$(ZTSDK)/SDK_EthernetTap.cpp $(ZTSDK)/tap.cpp
# ZeroTierOne ext files # ZeroTierOne ext files
LOCAL_SRC_FILES += \ LOCAL_SRC_FILES += \

View File

@@ -1,6 +1,6 @@
NDK_TOOLCHAIN_VERSION := clang NDK_TOOLCHAIN_VERSION := clang
APP_STL := c++_static APP_STL := c++_static
APP_CPPFLAGS := -g -O3 -DSDK_BUNDLED -DZT_DEBUG -DSDK_DEBUG -DLWIP_DEBUG -DSDK -fPIC -fPIE -fvectorize -Wall -fstack-protector -fexceptions -fno-strict-aliasing -Wno-deprecated-register -DZT_NO_TYPE_PUNNING=1 APP_CPPFLAGS := -g -O3 -DSDK_BUNDLED -DZT_DEBUG -DSDK_DEBUG -DLWIP_DEBUG -DSDK_LWIP=1 -DSDK_IPV4=1 -DSDK -fPIC -fPIE -fvectorize -Wall -fstack-protector -fexceptions -fno-strict-aliasing -Wno-deprecated-register -DZT_NO_TYPE_PUNNING=1
APP_CFLAGS := -g -DSDK_BUNDLED APP_CFLAGS := -g -DSDK_BUNDLED
APP_PLATFORM := android-14 APP_PLATFORM := android-14

View File

@@ -337,7 +337,7 @@ clean_basic:
clean_thorough: clean_basic clean_thorough: clean_basic
-rm -rf .depend -rm -rf .depend
clean: clean_basic clean_android clean: clean_basic
clean_for_production: clean_for_production:
-find . -type f \( -name '*.identity'\) -delete -find . -type f \( -name '*.identity'\) -delete

View File

@@ -243,7 +243,7 @@ android: android_jni_lib
# Build library for Android Unity integrations # Build library for Android Unity integrations
# Build JNI library for Android app integration # Build JNI library for Android app integration
android_jni_lib: android_jni_lib:
./increment.sh -./increment.sh
cd $(INT)/android/android_jni_lib/proj; ./gradlew assembleDebug cd $(INT)/android/android_jni_lib/proj; ./gradlew assembleDebug
mkdir -p $(BUILD)/android_jni_lib mkdir -p $(BUILD)/android_jni_lib
cp docs/android_zt_sdk.md $(BUILD)/android_jni_lib/README.md cp docs/android_zt_sdk.md $(BUILD)/android_jni_lib/README.md
@@ -318,7 +318,7 @@ clean_basic:
-find . -type f \( -name $(ONE_SERVICE_NAME) -o -name $(SDK_SERVICE_NAME) \) -delete -find . -type f \( -name $(ONE_SERVICE_NAME) -o -name $(SDK_SERVICE_NAME) \) -delete
-find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete -find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete
clean: clean_basic clean_android clean: clean_basic
clean_for_production: clean_for_production:
-find . -type f \( -name '*.identity'\) -delete -find . -type f \( -name '*.identity'\) -delete