diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c4af76a0e..9e1d75c5a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,9 +13,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + # Install Java 8 for cross-compilation support. Setting it up before + # Java 11 means it comes later in $PATH (because of how setup-java works) - uses: actions/setup-java@v1 with: java-version: 8 + - uses: actions/setup-java@v1 + with: + java-version: 11 - uses: actions/cache@v1 with: path: ~/.gradle @@ -27,4 +32,4 @@ jobs: BINTRAY_USER: ${{ secrets.BINTRAY_USER }} BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }} GRADLE_OPTS: -Xmx6g -Xms6g -Dorg.gradle.daemon=false - run: ./gradlew -PenablePublishing=true -PbintrayUser="${BINTRAY_USER}" -PbintrayKey="${BINTRAY_API_KEY}" build snapshot --stacktrace + run: ./gradlew -PenableCrossCompilerPlugin=true -PenablePublishing=true -PbintrayUser="${BINTRAY_USER}" -PbintrayKey="${BINTRAY_API_KEY}" build snapshot --stacktrace diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 344085601..7254e2fec 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -7,9 +7,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + # Install Java 8 for cross-compilation support. Setting it up before + # Java 11 means it comes later in $PATH (because of how setup-java works) - uses: actions/setup-java@v1 with: java-version: 8 + - uses: actions/setup-java@v1 + with: + java-version: 11 - uses: actions/cache@v1 with: path: ~/.gradle @@ -19,4 +24,4 @@ jobs: - name: Build env: GRADLE_OPTS: -Xmx6g -Xms6g -Dorg.gradle.daemon=false - run: ./gradlew build + run: ./gradlew -PenableCrossCompilerPlugin=true build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 19125dba8..18d87d1e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,9 +12,14 @@ jobs: steps: - uses: actions/checkout@v2 - run: git fetch --prune --unshallow + # Install Java 8 for cross-compilation support. Setting it up before + # Java 11 means it comes later in $PATH (because of how setup-java works) - uses: actions/setup-java@v1 with: java-version: 8 + - uses: actions/setup-java@v1 + with: + java-version: 11 - uses: actions/cache@v1 with: path: ~/.gradle @@ -37,7 +42,7 @@ jobs: BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }} GRADLE_OPTS: -Xmx6g -Xms6g -Dorg.gradle.daemon=false run: | - ./gradlew -PenablePublishing=true --info -Prelease.disableGitChecks=true -Prelease.useLastTag=true -PbintrayUser="${BINTRAY_USER}" -PbintrayKey="${BINTRAY_API_KEY}" candidate + ./gradlew -PenableCrossCompilerPlugin=true -PenablePublishing=true --info -Prelease.disableGitChecks=true -Prelease.useLastTag=true -PbintrayUser="${BINTRAY_USER}" -PbintrayKey="${BINTRAY_API_KEY}" candidate - name: Release build if: steps.release_info.outputs.IS_CANDIDATE == 'false' env: @@ -45,7 +50,7 @@ jobs: BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }} GRADLE_OPTS: -Xmx6g -Xms6g -Dorg.gradle.daemon=false run: | - ./gradlew -PenablePublishing=true --info -Prelease.disableGitChecks=true -Prelease.useLastTag=true -PbintrayUser="${BINTRAY_USER}" -PbintrayKey="${BINTRAY_API_KEY}" final + ./gradlew -PenableCrossCompilerPlugin=true -PenablePublishing=true --info -Prelease.disableGitChecks=true -Prelease.useLastTag=true -PbintrayUser="${BINTRAY_USER}" -PbintrayKey="${BINTRAY_API_KEY}" final - name: Create release if: steps.release_info.outputs.SKIP_RELEASE == 'false' uses: actions/create-release@v1 diff --git a/Dockerfile.compile b/Dockerfile.compile index c8a7af415..df57033e3 100644 --- a/Dockerfile.compile +++ b/Dockerfile.compile @@ -1,5 +1,11 @@ -FROM openjdk:8 +FROM ubuntu:bionic +RUN apt-get update && apt-get install -y \ + openjdk-8-jdk \ + openjdk-11-jdk \ + && rm -rf /var/lib/apt/lists/* MAINTAINER sig-platform@spinnaker.io +ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64 +ENV JDK_18 /usr/lib/jvm/java-8-openjdk-amd64 ENV GRADLE_USER_HOME /workspace/.gradle -ENV GRADLE_OPTS -Xmx2048m -CMD ./gradlew --no-daemon fiat-web:installDist -x test +ENV GRADLE_OPTS -Xmx4g +CMD ./gradlew --no-daemon -PenableCrossCompilerPlugin=true fiat-web:installDist -x test diff --git a/fiat-roles/src/main/java/com/netflix/spinnaker/fiat/roles/UserRolesSyncer.java b/fiat-roles/src/main/java/com/netflix/spinnaker/fiat/roles/UserRolesSyncer.java index 930f68a12..17d8c56db 100644 --- a/fiat-roles/src/main/java/com/netflix/spinnaker/fiat/roles/UserRolesSyncer.java +++ b/fiat-roles/src/main/java/com/netflix/spinnaker/fiat/roles/UserRolesSyncer.java @@ -36,6 +36,7 @@ import com.netflix.spinnaker.kork.lock.LockManager; import java.time.Duration; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -273,10 +274,11 @@ public long updateUserPermissions(Map permissionsById) { long count = timeIt( "syncUsers", - () -> - permissionsResolver.resolve(extUsers).values().stream() - .map(permission -> permissionsRepository.put(permission)) - .count()); + () -> { + Collection values = permissionsResolver.resolve(extUsers).values(); + values.forEach(permissionsRepository::put); + return values.size(); + }); log.info("Synced {} non-anonymous user roles.", count); return count; } diff --git a/gradle.properties b/gradle.properties index 2101cb8bd..f54626e80 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ #Tue Mar 31 21:48:04 UTC 2020 enablePublishing=false -spinnakerGradleVersion=7.7.0 +spinnakerGradleVersion=7.9.0 korkVersion=7.31.1 org.gradle.parallel=true includeProviders=file,github,google-groups,ldap