diff --git a/.appveyor.yml b/.appveyor.yml index 94e30d038..2094168d6 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -2,6 +2,7 @@ version: '{build}' image: Visual Studio 2017 environment: ANDROID_HOME: "C:\\android-sdk-windows" + ANDROID_NDK_HOME: "C:\\android-sdk-windows\\ndk-bundle" ANDROID_BUILD_VERSION: 29 ANDROID_TOOLS_VERSION: 29.0.2 GRADLE_OPTS: -Dorg.gradle.daemon=false @@ -18,7 +19,7 @@ cache: - "%USERPROFILE%\\.gradle\\wrapper" - "%USERPROFILE%\\.m2\\repository" build_script: - - cmd: gradlew.bat assemble check + - cmd: gradlew.bat build artifacts: - path: '**\libs\*sentry*.jar' - path: '**\outputs\aar\*sentry*.aar' diff --git a/.travis.yml b/.travis.yml index e036a0caf..2249707ee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,11 @@ licenses: before_install: - touch $HOME/.android/repositories.cfg - yes | sdkmanager --update +install: + - echo y | sdkmanager "ndk-bundle" >/dev/null + - echo y | sdkmanager "cmake;3.6.4111459" >/dev/null +before_script: + - export ANDROID_NDK_HOME=$ANDROID_HOME/ndk-bundle android: components: - platform-tools @@ -25,29 +30,29 @@ language: android env: matrix: - API=android-14 ABI=armeabi-v7a -# Keeping only lowest/higher API level per ABI temporarily -# - API=android-15 ABI=armeabi-v7a -# - API=android-16 ABI=armeabi-v7a -# - API=android-17 ABI=armeabi-v7a -# - API=android-18 ABI=armeabi-v7a -# - API=android-19 ABI=armeabi-v7a -# - API=android-21 ABI=armeabi-v7aq -# - API=android-22 ABI=armeabi-v7a -# - API=android-23 ABI=armeabi-v7a -# - API=android-24 ABI=armeabi-v7a -# - API=android-25 ABI=armeabi-v7a -# - API=android-26 ABI=armeabi-v7a -# - API=android-27 ABI=armeabi-v7a -# - API=android-28 ABI=armeabi-v7a + # Keeping only lowest/higher API level per ABI temporarily + # - API=android-15 ABI=armeabi-v7a + # - API=android-16 ABI=armeabi-v7a + # - API=android-17 ABI=armeabi-v7a + # - API=android-18 ABI=armeabi-v7a + # - API=android-19 ABI=armeabi-v7a + # - API=android-21 ABI=armeabi-v7aq + # - API=android-22 ABI=armeabi-v7a + # - API=android-23 ABI=armeabi-v7a + # - API=android-24 ABI=armeabi-v7a + # - API=android-25 ABI=armeabi-v7a + # - API=android-26 ABI=armeabi-v7a + # - API=android-27 ABI=armeabi-v7a + # - API=android-28 ABI=armeabi-v7a - API=android-29 ABI=armeabi-v7a - API=android-21 ABI=arm64-v8a -# - API=android-22 ABI=arm64-v8a -# - API=android-23 ABI=arm64-v8a -# - API=android-24 ABI=arm64-v8a -# - API=android-25 ABI=arm64-v8a -# - API=android-26 ABI=arm64-v8a -# - API=android-27 ABI=arm64-v8a -# - API=android-28 ABI=arm64-v8a + # - API=android-22 ABI=arm64-v8a + # - API=android-23 ABI=arm64-v8a + # - API=android-24 ABI=arm64-v8a + # - API=android-25 ABI=arm64-v8a + # - API=android-26 ABI=arm64-v8a + # - API=android-27 ABI=arm64-v8a + # - API=android-28 ABI=arm64-v8a - API=android-29 ABI=arm64-v8a matrix: include: diff --git a/build.gradle.kts b/build.gradle.kts index 1f66c1b18..d6b9835fe 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,8 +15,10 @@ configure { buildscript { repositories { + mavenLocal() google() jcenter() + mavenCentral() } dependencies { classpath(Config.BuildPlugins.androidGradle) @@ -28,6 +30,7 @@ buildscript { allprojects { repositories { + mavenLocal() google() jcenter() mavenCentral() diff --git a/buildSrc/src/main/java/Config.kt b/buildSrc/src/main/java/Config.kt index b07177d94..7647be2d8 100644 --- a/buildSrc/src/main/java/Config.kt +++ b/buildSrc/src/main/java/Config.kt @@ -3,7 +3,7 @@ object Config { val kotlinStdLib = "stdlib-jdk8" object BuildPlugins { - val androidGradle = "com.android.tools.build:gradle:3.5.2" + val androidGradle = "com.android.tools.build:gradle:3.6.0-beta03" val kotlinGradlePlugin = "gradle-plugin" } diff --git a/gradle.properties b/gradle.properties index 3718a8e4e..107b55d14 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,15 @@ # Daemon’s heap size -org.gradle.jvmargs=-Xms1g -Xmx1g -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xms1g -Dkotlin.daemon.jvm.options\="-Xmx1536M" -Xmx1536M -XX\:MaxPermSize\=512m -Dfile.encoding\=UTF-8 # Parallel execution org.gradle.parallel=true # Cacheable unit tests android.testConfig.useRelativePath = true + +# Migrating to AndroidX - AGP 3.6.x +android.useAndroidX=true +#android.enableJetifier=true - causing SHA1 digest error + +# New default packaging tool, disabled as its still preview +android.useNewApkCreator=false diff --git a/sentry-android-core/build.gradle.kts b/sentry-android-core/build.gradle.kts index 0368c7447..1db07f407 100644 --- a/sentry-android-core/build.gradle.kts +++ b/sentry-android-core/build.gradle.kts @@ -4,6 +4,7 @@ plugins { id("com.android.library") kotlin("android") jacoco + `maven-publish` id("net.ltgt.errorprone") } @@ -89,3 +90,13 @@ dependencies { testImplementation(Config.TestLibs.androidxJunit) testImplementation(Config.TestLibs.mockitoKotlin) } + +afterEvaluate { + publishing { + publications { + register("release", MavenPublication::class) { + from(components["release"]) + } + } + } +} diff --git a/sentry-android-ndk/build.gradle.kts b/sentry-android-ndk/build.gradle.kts index c06a35a76..cf5691458 100644 --- a/sentry-android-ndk/build.gradle.kts +++ b/sentry-android-ndk/build.gradle.kts @@ -1,6 +1,7 @@ plugins { id("com.android.library") + `maven-publish` kotlin("android") jacoco } @@ -97,6 +98,8 @@ android { // We run a full lint analysis as build part in CI, so skip vital checks for assemble tasks. isCheckReleaseBuilds = false } + + ndkVersion = "20.1.5948944" } dependencies { @@ -114,3 +117,13 @@ val initNative = tasks.register("initNative") { tasks.named("preBuild") { dependsOn(initNative) } + +afterEvaluate { + publishing { + publications { + register("release", MavenPublication::class) { + from(components["release"]) + } + } + } +} diff --git a/sentry-android/build.gradle.kts b/sentry-android/build.gradle.kts index 5c03f3675..92bfee0dd 100644 --- a/sentry-android/build.gradle.kts +++ b/sentry-android/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("com.android.library") + `maven-publish` } android { @@ -11,6 +12,7 @@ android { minSdkVersion(Config.Android.minSdkVersionNdk) versionName = "$version" + } compileOptions { @@ -30,3 +32,13 @@ dependencies { api(project(":sentry-android-core")) api(project(":sentry-android-ndk")) } + +afterEvaluate { + publishing { + publications { + register("release", MavenPublication::class) { + from(components["release"]) + } + } + } +} diff --git a/sentry-core/build.gradle.kts b/sentry-core/build.gradle.kts index cfaa9556e..29cee6eb7 100644 --- a/sentry-core/build.gradle.kts +++ b/sentry-core/build.gradle.kts @@ -2,6 +2,7 @@ plugins { `java-library` kotlin("jvm") jacoco + `maven-publish` id("net.ltgt.errorprone") } @@ -50,3 +51,17 @@ tasks { dependsOn(jacocoTestReport) } } + +val sourcesJar by tasks.registering(Jar::class) { + archiveClassifier.set("sources") + from(sourceSets["main"].allSource) +} + +publishing { + publications { + register("release", MavenPublication::class) { + from(components["java"]) + artifact(sourcesJar.get()) + } + } +} diff --git a/sentry-sample/build.gradle.kts b/sentry-sample/build.gradle.kts index 258eb4d2f..a4aa1538a 100644 --- a/sentry-sample/build.gradle.kts +++ b/sentry-sample/build.gradle.kts @@ -37,6 +37,9 @@ android { abiFilters(platform) } } + + // Required when setting minSdkVersion to 20 or lower + multiDexEnabled = true } externalNativeBuild { @@ -86,6 +89,7 @@ dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) implementation(project(":sentry-android")) +// implementation("io.sentry:sentry-android:2.0.0-SNAPSHOT") implementation(Config.Libs.appCompat)