From 306f3d606a729acd298f24ff5fd081024223af10 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 16:14:11 +0200 Subject: [PATCH 01/29] Remove JDK 7 target --- build.gradle | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 850d1cc2..79455cf9 100644 --- a/build.gradle +++ b/build.gradle @@ -32,9 +32,7 @@ allprojects { } subprojects { project -> - if (!project.name.contains('android') && - !project.parent.name.equals("examples") && - !project.name.contains('examples')) { + if (!project.name.contains('android') && !project.parent.name.equals("examples") && !project.name.contains('examples')) { apply plugin: 'java-library' apply from: "$rootDir/gradle/release.gradle" @@ -69,12 +67,8 @@ subprojects { project -> // features not available in the target version. options.release = 7 } else { - sourceCompatibility = JavaVersion.VERSION_1_7 - targetCompatibility = JavaVersion.VERSION_1_7 - } - - if (System.env.JDK7_HOME) { - options.bootstrapClasspath = files("${System.env.JDK7_HOME}/jre/lib/rt.jar") + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } } From 3c9a91038067914a0441a5043c6cee273c9836e1 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 16:14:40 +0200 Subject: [PATCH 02/29] Bump `actions/checkout` to `v4` --- .github/workflows/ci.yml | 4 ++-- .github/workflows/gradle-wrapper-validation.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6fd5b607..ee01fcb6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: matrix: java: [8, 11] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Fetch git tags run: ./.github/fetch_to_tag.sh @@ -82,7 +82,7 @@ jobs: # in that job. needs: build steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Java 7 uses: actions/setup-java@v1 diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 0bde8aec..a8195158 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -6,5 +6,5 @@ jobs: name: "Gradle wrapper validation" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: gradle/wrapper-validation-action@v1 From a756bc2632042435e08532f8ff2a990919efa66a Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 16:15:06 +0200 Subject: [PATCH 03/29] Bump Android Gradle Plugin to `v4` --- examples/rollbar-android/build.gradle | 2 +- rollbar-android/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/rollbar-android/build.gradle b/examples/rollbar-android/build.gradle index 825993a1..9dff2b01 100644 --- a/examples/rollbar-android/build.gradle +++ b/examples/rollbar-android/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.2' + classpath 'com.android.tools.build:gradle:4.2.2' } } diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 12e7a868..3e74a482 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.2' + classpath 'com.android.tools.build:gradle:4.2.2' } } From 262ba512f794ab62ec08507de9846bcfbd3fad8b Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 16:54:48 +0200 Subject: [PATCH 04/29] Experimental workflow simplification. --- .github/workflows/ci.yml | 90 ++++++++----------- .../workflows/gradle-wrapper-validation.yml | 10 --- 2 files changed, 36 insertions(+), 64 deletions(-) delete mode 100644 .github/workflows/gradle-wrapper-validation.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ee01fcb6..e59f2e51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,17 @@ on: branches: [master] jobs: + validation: + name: "Gradle wrapper validation" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: gradle/actions/wrapper-validation@v3 + build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest name: Java ${{ matrix.java }} + needs: [validation] strategy: matrix: java: [8, 11] @@ -18,55 +26,42 @@ jobs: - name: Fetch git tags run: ./.github/fetch_to_tag.sh - # Our build uses JDK7's rt.jar to make sure the artifact is fully - # compatible with Java 7, so we let this action set Java 7 up for us - # and we store its JAVA_HOME - - name: Set up Java 7 - uses: actions/setup-java@v1 - with: - java-version: 7 - - name: Capture JDK7_HOME - run: echo "export JDK7_HOME=\"$JAVA_HOME\"" > ~/.jdk7_home - - - name: Set up Java 17 (needed for Spring Boot 3) - uses: actions/setup-java@v1 - with: - java-version: 17 - - - name: Capture JDK17_HOME - run: echo "export JDK17_HOME=\"$JAVA_HOME\"" > ~/.jdk17_home +# - name: Set up Java 17 (needed for Spring Boot 3) +# uses: actions/setup-java@v3 +# with: +# java-version: 17 +# distribution: 'azul' +# cache: 'gradle' +# +# - name: Capture JDK17_HOME +# run: echo "export JDK17_HOME=\"$JAVA_HOME\"" > ~/.jdk17_home # This is the JDK that'll run the build - name: Set up Java ${{ matrix.java }} - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} - - - name: Cache Gradle packages - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ matrix.java }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle-${{ matrix.java }}- + distribution: 'azul' + cache: 'gradle' - name: Environment info run: | ./gradlew --version - echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --version echo JAVA_HOME: ${JAVA_HOME} java -version javac -version + - name: Android SDK info + run: | + echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} +# ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --version + - name: Build - run: 'source ~/.jdk7_home && ./gradlew clean build' + run: ./gradlew clean build - name: Check - run: 'source ~/.jdk7_home && ./gradlew clean check' + run: ./gradlew clean check - name: Cleanup Gradle cache # Recommended by https://docs.github.com/en/actions/guides/building-and-testing-java-with-gradle @@ -75,37 +70,24 @@ jobs: rm -f ~/.gradle/caches/modules-2/gc.properties release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest # It would be nice to run this as part of the build job, since it would be # faster and have less duplicated Yaml, it would not be possible to check # for all matrix results before publishing if this were just another step # in that job. - needs: build + needs: [build] steps: - uses: actions/checkout@v4 - - name: Set up Java 7 - uses: actions/setup-java@v1 - with: - java-version: 7 - - - name: Capture JDK7_HOME - run: echo "export JDK7_HOME=\"$JAVA_HOME\"" > ~/.jdk7_home - - name: Set up Java 8 - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: 8 + distribution: 'azul' + cache: 'gradle' - - name: Cache Gradle packages - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-8-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle-8- + - name: Capture JDK8_HOME + run: echo "export JDK8_HOME=\"$JAVA_HOME\"" > ~/.jdk8_home - name: Release env: @@ -121,7 +103,7 @@ jobs: if test "$GITHUB_REPOSITORY" = "rollbar/rollbar-java" -a "$GITHUB_BASE_REF" = ""; then openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d fi && - source ~/.jdk7_home && + source ~/.jdk8_home && ./.github/release.sh - name: Cleanup Gradle cache diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml deleted file mode 100644 index a8195158..00000000 --- a/.github/workflows/gradle-wrapper-validation.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: "Validate Gradle Wrapper" -on: [push, pull_request] - -jobs: - validation: - name: "Gradle wrapper validation" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v1 From 6137719580e8662a9f2985e0b9a23c3ece2eb7a7 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 17:00:22 +0200 Subject: [PATCH 05/29] Fix `actions/setup-java` --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e59f2e51..e2a6ef85 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,10 +28,10 @@ jobs: # - name: Set up Java 17 (needed for Spring Boot 3) -# uses: actions/setup-java@v3 +# uses: actions/setup-java@v4 # with: # java-version: 17 -# distribution: 'azul' +# distribution: 'zulu' # cache: 'gradle' # # - name: Capture JDK17_HOME @@ -39,10 +39,10 @@ jobs: # This is the JDK that'll run the build - name: Set up Java ${{ matrix.java }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.java }} - distribution: 'azul' + distribution: 'zulu' cache: 'gradle' - name: Environment info @@ -80,10 +80,10 @@ jobs: - uses: actions/checkout@v4 - name: Set up Java 8 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: 8 - distribution: 'azul' + distribution: 'zulu' cache: 'gradle' - name: Capture JDK8_HOME From 8cf6c28270cf6aa97e7f843c2a7402704468e187 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 17:17:14 +0200 Subject: [PATCH 06/29] Bump Android build tools version to match the Android Gradle Plugin requirements. --- examples/rollbar-android/build.gradle | 4 +++- rollbar-android/build.gradle | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/rollbar-android/build.gradle b/examples/rollbar-android/build.gradle index 9dff2b01..f42a9424 100644 --- a/examples/rollbar-android/build.gradle +++ b/examples/rollbar-android/build.gradle @@ -13,10 +13,12 @@ apply plugin: 'com.android.application' android { compileSdkVersion 27 - buildToolsVersion "28.0.3" + buildToolsVersion "30.0.2" defaultConfig { applicationId "com.rollbar.example.android" minSdkVersion 16 + // FIXME: Pending further discussion + //noinspection ExpiredTargetSdkVersion targetSdkVersion 27 versionCode 1 versionName "1.0" diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 3e74a482..7f3a97f4 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -20,10 +20,12 @@ apply from: "$rootDir/gradle/android.quality.gradle" android { compileSdkVersion 27 - buildToolsVersion '28.0.3' + buildToolsVersion '30.0.2' defaultConfig { minSdkVersion 16 + // FIXME: Pending further discussion + //noinspection ExpiredTargetSdkVersion targetSdkVersion 27 consumerProguardFiles 'proguard-rules.pro' manifestPlaceholders = [notifierVersion: VERSION_NAME] From 015ffbdd899af78a2079f9d894342c76223e55f4 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 18:35:32 +0200 Subject: [PATCH 07/29] Refactor root/submodule build configs. --- build.gradle | 10 +++------- examples/rollbar-android/build.gradle | 1 - examples/rollbar-spring-boot3-webmvc/build.gradle | 6 +++++- examples/rollbar-spring-webmvc/build.gradle | 2 +- examples/rollbar-struts2-spring/build.gradle | 2 +- examples/rollbar-struts2/build.gradle | 2 +- examples/rollbar-web/build.gradle | 2 +- rollbar-android/build.gradle | 3 +-- rollbar-reactive-streams-reactor/build.gradle | 12 ------------ 9 files changed, 13 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index 79455cf9..67f5e7c1 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,6 @@ allprojects { repositories { google() mavenCentral() - jcenter() } } @@ -61,11 +60,8 @@ subprojects { project -> } compileJava { - if (JavaVersion.current().compareTo(JavaVersion.VERSION_1_9) >= 0) { - // Use the --release javac flag, available since JDK9, which is equivalent to setting - // the source, target, and bootstrap classpath, and catches all usages of stdlib - // features not available in the target version. - options.release = 7 + if (JavaVersion.current().isJava9Compatible()) { + options.release = 8 } else { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 @@ -73,7 +69,7 @@ subprojects { project -> } compileTestJava { - if (JavaVersion.current().compareTo(JavaVersion.VERSION_1_9) >= 0) { + if (JavaVersion.current().isJava9Compatible()) { options.release = 8 } else { sourceCompatibility = JavaVersion.VERSION_1_8 diff --git a/examples/rollbar-android/build.gradle b/examples/rollbar-android/build.gradle index f42a9424..131129df 100644 --- a/examples/rollbar-android/build.gradle +++ b/examples/rollbar-android/build.gradle @@ -2,7 +2,6 @@ buildscript { repositories { google() mavenCentral() - jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.2.2' diff --git a/examples/rollbar-spring-boot3-webmvc/build.gradle b/examples/rollbar-spring-boot3-webmvc/build.gradle index 2e3128e6..7be0c15b 100644 --- a/examples/rollbar-spring-boot3-webmvc/build.gradle +++ b/examples/rollbar-spring-boot3-webmvc/build.gradle @@ -6,7 +6,11 @@ plugins { group = 'com.rollbar.example' version = VERSION_NAME -sourceCompatibility = '17' + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} repositories { mavenLocal() diff --git a/examples/rollbar-spring-webmvc/build.gradle b/examples/rollbar-spring-webmvc/build.gradle index 9595f322..34337a90 100644 --- a/examples/rollbar-spring-webmvc/build.gradle +++ b/examples/rollbar-spring-webmvc/build.gradle @@ -1,6 +1,6 @@ buildscript { repositories { - jcenter() + mavenCentral() } dependencies { diff --git a/examples/rollbar-struts2-spring/build.gradle b/examples/rollbar-struts2-spring/build.gradle index b36b349d..f324e8b8 100755 --- a/examples/rollbar-struts2-spring/build.gradle +++ b/examples/rollbar-struts2-spring/build.gradle @@ -1,6 +1,6 @@ buildscript { repositories { - jcenter() + mavenCentral() } dependencies { diff --git a/examples/rollbar-struts2/build.gradle b/examples/rollbar-struts2/build.gradle index 0590ea86..caa90366 100755 --- a/examples/rollbar-struts2/build.gradle +++ b/examples/rollbar-struts2/build.gradle @@ -1,6 +1,6 @@ buildscript { repositories { - jcenter() + mavenCentral() } dependencies { diff --git a/examples/rollbar-web/build.gradle b/examples/rollbar-web/build.gradle index 8dead54f..ea6e8263 100755 --- a/examples/rollbar-web/build.gradle +++ b/examples/rollbar-web/build.gradle @@ -1,6 +1,6 @@ buildscript { repositories { - jcenter() + mavenCentral() } dependencies { diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 7f3a97f4..61c62750 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -2,7 +2,6 @@ buildscript { repositories { google() mavenCentral() - jcenter() } dependencies { classpath 'com.android.tools.build:gradle:4.2.2' @@ -11,7 +10,7 @@ buildscript { repositories { google() - jcenter() + mavenCentral() } apply plugin: 'com.android.library' diff --git a/rollbar-reactive-streams-reactor/build.gradle b/rollbar-reactive-streams-reactor/build.gradle index f7dc5aac..332169cf 100644 --- a/rollbar-reactive-streams-reactor/build.gradle +++ b/rollbar-reactive-streams-reactor/build.gradle @@ -34,18 +34,6 @@ dependencies { } } -compileJava { - if (JavaVersion.current() >= JavaVersion.VERSION_1_9) { - options.release = 8 - } else { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - // Unset this since it's been set to Java 7's rt.jar by the parent project - options.bootstrapClasspath = null -} - test { // Our core suite uses Junit 5 to take advantage of reactor's Blockhound verification. useJUnitPlatform() From 52d5d6069d646c7fc450177de06dbacfed8af6b4 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 18:37:06 +0200 Subject: [PATCH 08/29] Move scripts. --- .github/{ => scripts}/fetch_to_tag.sh | 0 .github/{ => scripts}/release.sh | 0 .github/workflows/ci.yml | 9 +++------ 3 files changed, 3 insertions(+), 6 deletions(-) rename .github/{ => scripts}/fetch_to_tag.sh (100%) rename .github/{ => scripts}/release.sh (100%) diff --git a/.github/fetch_to_tag.sh b/.github/scripts/fetch_to_tag.sh similarity index 100% rename from .github/fetch_to_tag.sh rename to .github/scripts/fetch_to_tag.sh diff --git a/.github/release.sh b/.github/scripts/release.sh similarity index 100% rename from .github/release.sh rename to .github/scripts/release.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e2a6ef85..49b506da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v4 - name: Fetch git tags - run: ./.github/fetch_to_tag.sh + run: ./.github/scripts/fetch_to_tag.sh # - name: Set up Java 17 (needed for Spring Boot 3) @@ -71,6 +71,7 @@ jobs: release: runs-on: ubuntu-latest + name: Release # It would be nice to run this as part of the build job, since it would be # faster and have less duplicated Yaml, it would not be possible to check # for all matrix results before publishing if this were just another step @@ -86,9 +87,6 @@ jobs: distribution: 'zulu' cache: 'gradle' - - name: Capture JDK8_HOME - run: echo "export JDK8_HOME=\"$JAVA_HOME\"" > ~/.jdk8_home - - name: Release env: SECRING_GPG_IV: ${{ secrets.SECRING_GPG_IV }} @@ -103,8 +101,7 @@ jobs: if test "$GITHUB_REPOSITORY" = "rollbar/rollbar-java" -a "$GITHUB_BASE_REF" = ""; then openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d fi && - source ~/.jdk8_home && - ./.github/release.sh + ./.github/scripts/release.sh - name: Cleanup Gradle cache run: | From 2c345429cfb83dac0446c3ef1e02679f0595583d Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 18:52:39 +0200 Subject: [PATCH 09/29] Refactoring. --- .github/workflows/ci.yml | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 49b506da..8db35bba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: build: runs-on: ubuntu-latest - name: Java ${{ matrix.java }} + name: Build and check with Java ${{ matrix.java }} needs: [validation] strategy: matrix: @@ -26,18 +26,6 @@ jobs: - name: Fetch git tags run: ./.github/scripts/fetch_to_tag.sh - -# - name: Set up Java 17 (needed for Spring Boot 3) -# uses: actions/setup-java@v4 -# with: -# java-version: 17 -# distribution: 'zulu' -# cache: 'gradle' -# -# - name: Capture JDK17_HOME -# run: echo "export JDK17_HOME=\"$JAVA_HOME\"" > ~/.jdk17_home - - # This is the JDK that'll run the build - name: Set up Java ${{ matrix.java }} uses: actions/setup-java@v4 with: @@ -55,7 +43,7 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} -# ${ANDROID_SDK_ROOT}/tools/bin/sdkmanager --version + ${ANDROID_SDK_ROOT} --version - name: Build run: ./gradlew clean build @@ -63,12 +51,6 @@ jobs: - name: Check run: ./gradlew clean check - - name: Cleanup Gradle cache - # Recommended by https://docs.github.com/en/actions/guides/building-and-testing-java-with-gradle - run: | - rm -f ~/.gradle/caches/modules-2/modules-2.lock - rm -f ~/.gradle/caches/modules-2/gc.properties - release: runs-on: ubuntu-latest name: Release @@ -102,8 +84,3 @@ jobs: openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d fi && ./.github/scripts/release.sh - - - name: Cleanup Gradle cache - run: | - rm -f ~/.gradle/caches/modules-2/modules-2.lock - rm -f ~/.gradle/caches/modules-2/gc.properties From 7b2c859084fba4370fdcd9cc0cbc043d5312b679 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:20:47 +0200 Subject: [PATCH 10/29] Upload build reports. --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8db35bba..0662adea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,8 +48,12 @@ jobs: - name: Build run: ./gradlew clean build - - name: Check - run: ./gradlew clean check + - name: Upload build reports + uses: actions/upload-artifact@v4 + with: + name: build-reports + path: | + **/build/reports/* release: runs-on: ubuntu-latest From 0829052c6586a66f997b80395257797049564bda Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:23:53 +0200 Subject: [PATCH 11/29] Fix bad shell command --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0662adea..de7adf4f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: needs: [validation] strategy: matrix: - java: [8, 11] + java: [8, 11, 17, 21, 22] steps: - uses: actions/checkout@v4 @@ -43,7 +43,7 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - ${ANDROID_SDK_ROOT} --version + ls -la ${ANDROID_SDK_ROOT} - name: Build run: ./gradlew clean build From 25e36e8fe98e79359a333b46b417e7672be71669 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:34:15 +0200 Subject: [PATCH 12/29] Turn of matrix strategy fail-fast --- .github/workflows/ci.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index de7adf4f..6692aafb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ on: jobs: validation: - name: "Gradle wrapper validation" + name: Gradle wrapper validation runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -15,9 +15,10 @@ jobs: build: runs-on: ubuntu-latest - name: Build and check with Java ${{ matrix.java }} + name: Build with Java ${{ matrix.java }} needs: [validation] strategy: + fail-fast: false matrix: java: [8, 11, 17, 21, 22] steps: @@ -33,6 +34,9 @@ jobs: distribution: 'zulu' cache: 'gradle' + # gradle/actions/setup-gradle@v3 might offer better caching and other benefits through better integration + # https://github.com/gradle/actions/blob/main/docs/setup-gradle.md + - name: Environment info run: | ./gradlew --version @@ -43,7 +47,7 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - ls -la ${ANDROID_SDK_ROOT} + sdkmanager --list - name: Build run: ./gradlew clean build From 8bb8906d0a849cd223313c85731f413b761ad9f3 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:38:51 +0200 Subject: [PATCH 13/29] Fix SDK Manager path --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6692aafb..c494e52a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,7 +47,7 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - sdkmanager --list + ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version - name: Build run: ./gradlew clean build From 2bad8a56701909911e77bf5d043c739e16a528de Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:42:13 +0200 Subject: [PATCH 14/29] Attempt to upload build artifacts even on failed build. --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c494e52a..e287884d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,12 +47,14 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version +# Doesn't work with Java 8 +# ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version - name: Build run: ./gradlew clean build - name: Upload build reports + if: always() uses: actions/upload-artifact@v4 with: name: build-reports From 5990c8837c365e3ded9422f54ba11043ad52d0d0 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:48:35 +0200 Subject: [PATCH 15/29] Distinguish uploaded artifacts in matrix strategy. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e287884d..5fb7ad32 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: if: always() uses: actions/upload-artifact@v4 with: - name: build-reports + name: java-${{ matrix.java }}-build-reports path: | **/build/reports/* From b6c22e193b5e6d7609f30db060793d3c1c6d9d09 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Sat, 3 Aug 2024 19:56:55 +0200 Subject: [PATCH 16/29] Remove incompatible Java versions from the build matrix. --- .github/workflows/ci.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5fb7ad32..1f92011b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,9 @@ jobs: strategy: fail-fast: false matrix: - java: [8, 11, 17, 21, 22] + # Must upgrade Gradle before we can go past Java 15 here. + # https://docs.gradle.org/current/userguide/compatibility.html + java: [8, 11] steps: - uses: actions/checkout@v4 @@ -34,7 +36,7 @@ jobs: distribution: 'zulu' cache: 'gradle' - # gradle/actions/setup-gradle@v3 might offer better caching and other benefits through better integration + # gradle/actions/setup-gradle@v3 might offer better caching and other benefits through better integration. # https://github.com/gradle/actions/blob/main/docs/setup-gradle.md - name: Environment info @@ -47,8 +49,8 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} -# Doesn't work with Java 8 -# ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version + # Doesn't work with Java 8 + # ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version - name: Build run: ./gradlew clean build From 5400f4e8a7b406639d3a4a024700f95775f1339d Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Wed, 7 Aug 2024 16:35:13 +0200 Subject: [PATCH 17/29] Bump Android build tools version to 31 --- rollbar-android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 61c62750..39f09d6b 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -19,7 +19,7 @@ apply from: "$rootDir/gradle/android.quality.gradle" android { compileSdkVersion 27 - buildToolsVersion '30.0.2' + buildToolsVersion '31.0.0' defaultConfig { minSdkVersion 16 From 84037ff6d6780541b2de8f7db856ce7bc594ac8c Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Wed, 7 Aug 2024 16:41:30 +0200 Subject: [PATCH 18/29] Try a SNAPSHOT release --- .github/scripts/temp-release.sh | 7 +++++++ .github/workflows/ci.yml | 6 +++--- gradle.properties | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 .github/scripts/temp-release.sh diff --git a/.github/scripts/temp-release.sh b/.github/scripts/temp-release.sh new file mode 100644 index 00000000..498b42bc --- /dev/null +++ b/.github/scripts/temp-release.sh @@ -0,0 +1,7 @@ +export GPG_KEY_LOCATION="$(realpath "$GPG_KEY_LOCATION")" + +echo "Doing SNAPSHOT release..." + +./gradlew -Dorg.gradle.internal.http.socketTimeout=300000 -Dorg.gradle.internal.http.connectionTimeout=300000 publishToSonatype + +echo "Release done!" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1f92011b..c38cf14b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: matrix: # Must upgrade Gradle before we can go past Java 15 here. # https://docs.gradle.org/current/userguide/compatibility.html - java: [8, 11] + java: [8, 11, 15] steps: - uses: actions/checkout@v4 @@ -49,8 +49,8 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - # Doesn't work with Java 8 - # ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version + Doesn't work with Java 8 + ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version - name: Build run: ./gradlew clean build diff --git a/gradle.properties b/gradle.properties index 16e928be..f9e38dea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -VERSION_NAME=1.10.1-SNAPSHOT +VERSION_NAME=1.10.2-SNAPSHOT-2024070701 GROUP=com.rollbar POM_DESCRIPTION=For connecting your applications built on the JVM to Rollbar for Error Reporting From 4eb3fb1d21263a2d0971d9d8d2c5111f60d7ce98 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Wed, 7 Aug 2024 16:55:59 +0200 Subject: [PATCH 19/29] Oups --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c38cf14b..a4f0e03e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,8 +49,8 @@ jobs: - name: Android SDK info run: | echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - Doesn't work with Java 8 - ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version +# Doesn't work with Java 8 +# ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version - name: Build run: ./gradlew clean build @@ -92,7 +92,7 @@ jobs: NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} run: | - if test "$GITHUB_REPOSITORY" = "rollbar/rollbar-java" -a "$GITHUB_BASE_REF" = ""; then - openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d - fi && - ./.github/scripts/release.sh +# if test "$GITHUB_REPOSITORY" = "rollbar/rollbar-java" -a "$GITHUB_BASE_REF" = ""; then +# openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d +# fi && + ./.github/scripts/temp-release.sh From 69d38414d4edc349041fbc30837368f6c841d39a Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Wed, 7 Aug 2024 19:22:14 +0200 Subject: [PATCH 20/29] Oups 2 --- .github/workflows/ci.yml | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4f0e03e..2853be24 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,9 +1,9 @@ name: rollbar-java CI on: push: - branches: [master] + branches: [ master ] pull_request: - branches: [master] + branches: [ master ] jobs: validation: @@ -16,13 +16,13 @@ jobs: build: runs-on: ubuntu-latest name: Build with Java ${{ matrix.java }} - needs: [validation] + needs: [ validation ] strategy: fail-fast: false matrix: # Must upgrade Gradle before we can go past Java 15 here. # https://docs.gradle.org/current/userguide/compatibility.html - java: [8, 11, 15] + java: [ 8, 11, 15 ] steps: - uses: actions/checkout@v4 @@ -43,15 +43,11 @@ jobs: run: | ./gradlew --version echo JAVA_HOME: ${JAVA_HOME} + echo ANDROID_HOME: ${ANDROID_HOME} + echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} java -version javac -version - - name: Android SDK info - run: | - echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} -# Doesn't work with Java 8 -# ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version - - name: Build run: ./gradlew clean build @@ -70,7 +66,7 @@ jobs: # faster and have less duplicated Yaml, it would not be possible to check # for all matrix results before publishing if this were just another step # in that job. - needs: [build] + needs: [ build ] steps: - uses: actions/checkout@v4 @@ -92,7 +88,5 @@ jobs: NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} run: | -# if test "$GITHUB_REPOSITORY" = "rollbar/rollbar-java" -a "$GITHUB_BASE_REF" = ""; then -# openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d -# fi && + openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d ./.github/scripts/temp-release.sh From a734f2075975beb582e092d1a1279792b661ddec Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Wed, 7 Aug 2024 19:31:35 +0200 Subject: [PATCH 21/29] Android `dx` vs `d8` --- .github/scripts/temp-release.sh | 2 ++ rollbar-android/build.gradle | 4 ++++ rollbar-android/gradle.properties | 2 ++ 3 files changed, 8 insertions(+) create mode 100644 rollbar-android/gradle.properties diff --git a/.github/scripts/temp-release.sh b/.github/scripts/temp-release.sh index 498b42bc..dafbfbc8 100644 --- a/.github/scripts/temp-release.sh +++ b/.github/scripts/temp-release.sh @@ -1,3 +1,5 @@ +#!/bin/bash + export GPG_KEY_LOCATION="$(realpath "$GPG_KEY_LOCATION")" echo "Doing SNAPSHOT release..." diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 39f09d6b..5353124c 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -38,6 +38,10 @@ android { testCoverageEnabled true } } + + dexOptions { + preDexLibraries = false + } } dependencies { diff --git a/rollbar-android/gradle.properties b/rollbar-android/gradle.properties new file mode 100644 index 00000000..cfeffc79 --- /dev/null +++ b/rollbar-android/gradle.properties @@ -0,0 +1,2 @@ +android.enableD8=true +android.useDexArchive=true From 15e91e4d2b4d3a3986ffbf3a6cc5bbecd37814d5 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 14:37:02 +0200 Subject: [PATCH 22/29] Use the SDK manager to install required packages. --- .github/workflows/ci.yml | 18 +++++++++++++++--- examples/rollbar-android/build.gradle | 2 +- rollbar-android/build.gradle | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2853be24..3ee7cba8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,10 +43,10 @@ jobs: run: | ./gradlew --version echo JAVA_HOME: ${JAVA_HOME} - echo ANDROID_HOME: ${ANDROID_HOME} - echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} java -version javac -version + echo ANDROID_HOME: ${ANDROID_HOME} + echo ANDROID_SDK_ROOT: ${ANDROID_SDK_ROOT} - name: Build run: ./gradlew clean build @@ -70,7 +70,19 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Java 8 + - name: Set up Java 11 for the Android SDK Manager + uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: 'zulu' + cache: 'gradle' + + - name: Install Android SDK + run: | + echo "Android SDK Manager version: `${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version}`" + ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "platforms;android-27" "build-tools;30.0.3" + + - name: Set up Java 8 for the build uses: actions/setup-java@v4 with: java-version: 8 diff --git a/examples/rollbar-android/build.gradle b/examples/rollbar-android/build.gradle index 131129df..41e42406 100644 --- a/examples/rollbar-android/build.gradle +++ b/examples/rollbar-android/build.gradle @@ -12,7 +12,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 27 - buildToolsVersion "30.0.2" + buildToolsVersion "30.0.3" defaultConfig { applicationId "com.rollbar.example.android" minSdkVersion 16 diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 5353124c..6d9779c1 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -19,7 +19,7 @@ apply from: "$rootDir/gradle/android.quality.gradle" android { compileSdkVersion 27 - buildToolsVersion '31.0.0' + buildToolsVersion '30.0.3' // Going above here requires bumping the AGP to version 4+ defaultConfig { minSdkVersion 16 From 2153208a674c112d96ff1c649aa1405c2f5d32a4 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 14:41:44 +0200 Subject: [PATCH 23/29] Remove Java 15 from the build matrix. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ee7cba8..9297eab5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: matrix: # Must upgrade Gradle before we can go past Java 15 here. # https://docs.gradle.org/current/userguide/compatibility.html - java: [ 8, 11, 15 ] + java: [ 8, 11 ] steps: - uses: actions/checkout@v4 From 151f32f4470fbf869ff4b4b983560f462486a30b Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 14:47:54 +0200 Subject: [PATCH 24/29] Fix typo --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9297eab5..2bbe0282 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,7 +79,7 @@ jobs: - name: Install Android SDK run: | - echo "Android SDK Manager version: `${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version}`" + echo "Android SDK Manager version: `${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --version`" ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "platforms;android-27" "build-tools;30.0.3" - name: Set up Java 8 for the build From 7afa0b2609a7085d04cd1f3b840a5ea6400a6368 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 15:51:40 +0200 Subject: [PATCH 25/29] Refactoring. --- .github/workflows/ci.yml | 15 +++++++++++++++ gradle/release.gradle | 5 ++--- rollbar-android/build.gradle | 4 ---- rollbar-android/gradle.properties | 2 -- rollbar-android/src/main/AndroidManifest.xml | 4 ++-- 5 files changed, 19 insertions(+), 11 deletions(-) delete mode 100644 rollbar-android/gradle.properties diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2bbe0282..23fbf85f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,25 @@ name: rollbar-java CI on: + workflow_call: + secrets: + SECRING_GPG_IV: + required: true + SECRING_GPG_KEY: + required: true + GPG_KEY_ID: + required: true + GPG_PASSPHRASE: + required: true + NEXUS_USERNAME: + required: true + NEXUS_PASSWORD: + required: true push: branches: [ master ] pull_request: branches: [ master ] + jobs: validation: name: Gradle wrapper validation diff --git a/gradle/release.gradle b/gradle/release.gradle index c1e150c6..b8a91420 100644 --- a/gradle/release.gradle +++ b/gradle/release.gradle @@ -1,8 +1,7 @@ apply plugin: 'signing' apply plugin: 'maven-publish' - - apply plugin: "de.marcphilipp.nexus-publish" + nexusPublishing { repositories { sonatype { @@ -147,7 +146,7 @@ afterEvaluate { name = POM_NAME description = POM_DESCRIPTION url = POM_URL - + scm { url = POM_SCM_URL connection = POM_SCM_CONNECTION diff --git a/rollbar-android/build.gradle b/rollbar-android/build.gradle index 6d9779c1..7a155de4 100644 --- a/rollbar-android/build.gradle +++ b/rollbar-android/build.gradle @@ -38,10 +38,6 @@ android { testCoverageEnabled true } } - - dexOptions { - preDexLibraries = false - } } dependencies { diff --git a/rollbar-android/gradle.properties b/rollbar-android/gradle.properties deleted file mode 100644 index cfeffc79..00000000 --- a/rollbar-android/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -android.enableD8=true -android.useDexArchive=true diff --git a/rollbar-android/src/main/AndroidManifest.xml b/rollbar-android/src/main/AndroidManifest.xml index 48596ed4..9eb5a74b 100644 --- a/rollbar-android/src/main/AndroidManifest.xml +++ b/rollbar-android/src/main/AndroidManifest.xml @@ -4,9 +4,9 @@ android:versionCode="1" android:versionName="1.0" > + + - - \ No newline at end of file From 73a75f2663869b8e596786de6b7323fee1c22566 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 20:38:49 +0300 Subject: [PATCH 26/29] Print OpenSSL version. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23fbf85f..fbfabdb1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,5 +115,6 @@ jobs: NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} run: | + echo OpenSSL: `openssl version` openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d ./.github/scripts/temp-release.sh From a1be39d163d6552851b239a7599304a1e770537a Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 21:08:27 +0300 Subject: [PATCH 27/29] Downgrade runner to Ubuntu 20.04 that packs OpenSSL v1 --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbfabdb1..24d2c02f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,13 +23,13 @@ on: jobs: validation: name: Gradle wrapper validation - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 - uses: gradle/actions/wrapper-validation@v3 build: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 name: Build with Java ${{ matrix.java }} needs: [ validation ] strategy: @@ -75,7 +75,7 @@ jobs: **/build/reports/* release: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 name: Release # It would be nice to run this as part of the build job, since it would be # faster and have less duplicated Yaml, it would not be possible to check From 6ff60bd5afd44aaf0a81434ccb3d1327b9de0e37 Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Thu, 8 Aug 2024 21:37:52 +0300 Subject: [PATCH 28/29] Check OpenSSL variables --- .github/workflows/ci.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24d2c02f..666b4ac8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,6 +104,28 @@ jobs: distribution: 'zulu' cache: 'gradle' + - name: Check OpenSSL Variables + env: + SECRING_GPG_IV: ${{ secrets.SECRING_GPG_IV }} + SECRING_GPG_KEY: ${{ secrets.SECRING_GPG_KEY }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + ENCRYPTED_GPG_KEY_LOCATION: ./.github/secring.gpg.enc + GPG_KEY_LOCATION: ./.github/secring.gpg + NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} + NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + run: | + echo "SECRING_GPG_KEY length: ${#SECRING_GPG_KEY}" + echo "SECRING_GPG_IV length: ${#SECRING_GPG_IV}" + if [ ${#SECRING_GPG_KEY} -ne 64 ]; then + echo "SECRING_GPG_KEY is not of correct length" + exit 1 + fi + if [ ${#SECRING_GPG_IV} -ne 32 ]; then + echo "SECRING_GPG_IV is not of correct length" + exit 1 + fi + - name: Release env: SECRING_GPG_IV: ${{ secrets.SECRING_GPG_IV }} From 84c6deccbed9eeb65c0c53885508a888665f69ed Mon Sep 17 00:00:00 2001 From: Csaba Ilonka Date: Mon, 12 Aug 2024 12:58:56 +0300 Subject: [PATCH 29/29] Refresh signing key. --- .github/scripts/release.sh | 2 -- .github/scripts/temp-release.sh | 9 ------- .github/workflows/ci.yml | 42 ++++----------------------------- gradle/release.gradle | 16 +++++-------- 4 files changed, 11 insertions(+), 58 deletions(-) delete mode 100644 .github/scripts/temp-release.sh diff --git a/.github/scripts/release.sh b/.github/scripts/release.sh index d4530784..2a5df64c 100755 --- a/.github/scripts/release.sh +++ b/.github/scripts/release.sh @@ -38,8 +38,6 @@ elif [[ -z $VERSION ]]; then elif ! [[ $VERSION =~ $SEMVER_REGEX ]]; then echo "Skipping release. Bad version used." else - # Gradle needs the absolute path to the secring - export GPG_KEY_LOCATION="$(realpath "$GPG_KEY_LOCATION")" if [[ ${BASH_REMATCH[5]} == 'SNAPSHOT' ]]; then echo "Doing SNAPSHOT release..." diff --git a/.github/scripts/temp-release.sh b/.github/scripts/temp-release.sh deleted file mode 100644 index dafbfbc8..00000000 --- a/.github/scripts/temp-release.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -export GPG_KEY_LOCATION="$(realpath "$GPG_KEY_LOCATION")" - -echo "Doing SNAPSHOT release..." - -./gradlew -Dorg.gradle.internal.http.socketTimeout=300000 -Dorg.gradle.internal.http.connectionTimeout=300000 publishToSonatype - -echo "Release done!" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 666b4ac8..b47fd1b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,13 +2,9 @@ name: rollbar-java CI on: workflow_call: secrets: - SECRING_GPG_IV: + RELEASE_GPG_PRIVATE_KEY: required: true - SECRING_GPG_KEY: - required: true - GPG_KEY_ID: - required: true - GPG_PASSPHRASE: + RELEASE_GPG_PRIVATE_KEY_PASSPHRASE: required: true NEXUS_USERNAME: required: true @@ -104,39 +100,11 @@ jobs: distribution: 'zulu' cache: 'gradle' - - name: Check OpenSSL Variables - env: - SECRING_GPG_IV: ${{ secrets.SECRING_GPG_IV }} - SECRING_GPG_KEY: ${{ secrets.SECRING_GPG_KEY }} - GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - ENCRYPTED_GPG_KEY_LOCATION: ./.github/secring.gpg.enc - GPG_KEY_LOCATION: ./.github/secring.gpg - NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} - NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - run: | - echo "SECRING_GPG_KEY length: ${#SECRING_GPG_KEY}" - echo "SECRING_GPG_IV length: ${#SECRING_GPG_IV}" - if [ ${#SECRING_GPG_KEY} -ne 64 ]; then - echo "SECRING_GPG_KEY is not of correct length" - exit 1 - fi - if [ ${#SECRING_GPG_IV} -ne 32 ]; then - echo "SECRING_GPG_IV is not of correct length" - exit 1 - fi - - name: Release env: - SECRING_GPG_IV: ${{ secrets.SECRING_GPG_IV }} - SECRING_GPG_KEY: ${{ secrets.SECRING_GPG_KEY }} - GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - ENCRYPTED_GPG_KEY_LOCATION: ./.github/secring.gpg.enc - GPG_KEY_LOCATION: ./.github/secring.gpg + RELEASE_GPG_PRIVATE_KEY: ${{ secrets.RELEASE_GPG_PRIVATE_KEY }} + RELEASE_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.RELEASE_GPG_PRIVATE_KEY_PASSPHRASE }} NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} run: | - echo OpenSSL: `openssl version` - openssl enc -aes-256-cbc -K "$SECRING_GPG_KEY" -iv "$SECRING_GPG_IV" -in "$ENCRYPTED_GPG_KEY_LOCATION" -out "$GPG_KEY_LOCATION" -d - ./.github/scripts/temp-release.sh + ./gradlew -Dorg.gradle.internal.http.socketTimeout=300000 -Dorg.gradle.internal.http.connectionTimeout=300000 publishToSonatype diff --git a/gradle/release.gradle b/gradle/release.gradle index b8a91420..aef0d97d 100644 --- a/gradle/release.gradle +++ b/gradle/release.gradle @@ -11,16 +11,6 @@ nexusPublishing { } } -gradle.taskGraph.whenReady { taskGraph -> - if (taskGraph.allTasks.any { it instanceof Sign }) { - allprojects { - ext."signing.keyId" = System.getenv("GPG_KEY_ID") - ext."signing.secretKeyRingFile" = System.getenv("GPG_KEY_LOCATION") - ext."signing.password" = System.getenv("GPG_PASSPHRASE") - } - } -} - afterEvaluate { if (project.parent != null && !project.parent.name.equals("examples") && !project.name.contains('examples')) { if (!project.hasProperty('android')) { @@ -92,6 +82,9 @@ afterEvaluate { signing { required true + useInMemoryPgpKeys( + findProperty("signingKey") ?: System.getenv("RELEASE_GPG_PRIVATE_KEY"), + findProperty("signingPassword") ?: System.getenv("RELEASE_GPG_PRIVATE_KEY_PASSPHRASE")) sign publishing.publications.maven } } @@ -174,6 +167,9 @@ afterEvaluate { } signing { required true + useInMemoryPgpKeys( + findProperty("signingKey") ?: System.getenv("RELEASE_GPG_PRIVATE_KEY"), + findProperty("signingPassword") ?: System.getenv("RELEASE_GPG_PRIVATE_KEY_PASSPHRASE")) sign publishing.publications.release } }