diff --git a/.github/workflows/generate-alpha-tag.yaml b/.github/workflows/generate-alpha-tag.yaml index 34469bbcb70..ecd2b2dcf30 100644 --- a/.github/workflows/generate-alpha-tag.yaml +++ b/.github/workflows/generate-alpha-tag.yaml @@ -6,8 +6,7 @@ on: - main env: - JAVA_OPTS: -Xms2g -Xmx4g - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs=-Xmx3g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" + GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx5g -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" jobs: build: diff --git a/.github/workflows/generate-tag.yaml b/.github/workflows/generate-tag.yaml index 2fb609c88f7..5a5043ee80a 100644 --- a/.github/workflows/generate-tag.yaml +++ b/.github/workflows/generate-tag.yaml @@ -27,8 +27,7 @@ on: - 'auto' env: - JAVA_OPTS: -Xms2g -Xmx4g - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs=-Xmx3g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" + GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx5g -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" jobs: build: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0e1ecdf677e..cb8a9ecba2e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,8 +7,7 @@ on: env: BASEDIR: ${{github.workspace}}/arrow-libs - JAVA_OPTS: -Xms2g -Xmx4g - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs=-Xmx3g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" + GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx5g -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" SONATYPE_USER: ${{ secrets.SONATYPE_USER }} SONATYPE_PWD: ${{ secrets.SONATYPE_PWD }} ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_signingKey }} @@ -46,8 +45,21 @@ jobs: distribution: 'zulu' java-version: 11 - - name: Build - run: ./gradlew build + - name: appleTest + uses: gradle/gradle-build-action@v2.0.1 + if: matrix.os == 'macos-latest' + with: + arguments: --full-stacktrace --scan appleTest + + - name: Ubuntu build + uses: gradle/gradle-build-action@v2.0.1 + if: matrix.os == 'ubuntu-latest' + with: + arguments: --full-stacktrace --scan build + + - name: mingwX64Test + uses: gradle/gradle-build-action@v2.0.1 + if: matrix.os == 'windows-latest' - id: get-arrow-version name: Get Arrow version diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6c6b4fa2f1c..13109015e1f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -3,8 +3,7 @@ name: "pull_request" on: pull_request env: - JAVA_OPTS: -Xms2g -Xmx4g - GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.configureondemand=true -Dorg.gradle.jvmargs=-Xmx3g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" + GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx5g -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" jobs: build: @@ -26,13 +25,25 @@ jobs: distribution: 'zulu' java-version: 11 - - name: Build + - name: appleTest + uses: gradle/gradle-build-action@v2.0.1 + if: matrix.os == 'macos-latest' + with: + arguments: --full-stacktrace --scan appleTest + + - name: Ubuntu build + uses: gradle/gradle-build-action@v2.0.1 + if: matrix.os == 'ubuntu-latest' + with: + arguments: --full-stacktrace --scan build + + - name: mingwX64Test uses: gradle/gradle-build-action@v2.0.1 + if: matrix.os == 'windows-latest' with: - arguments: build + arguments: --full-stacktrace --scan mingwX64Test - name: Upload reports - if: failure() uses: actions/upload-artifact@v2.2.4 with: name: 'reports-${{ matrix.os }}' @@ -50,28 +61,16 @@ jobs: with: fetch-depth: 0 - - name: Restore Gradle cache - id: cache - uses: actions/cache@v2.1.6 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - ~/.gradle/yarn - ~/.gradle/nodejs - ~/.konan - key: misc-step-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - misc-step-gradle- - - name: Set up Java uses: actions/setup-java@v2.4.0 with: distribution: 'zulu' java-version: 11 - - name: "Dump new API files" - run: ./gradlew apiDump + - name: Build + uses: gradle/gradle-build-action@v2.0.1 + with: + arguments: apiDump - name: Stop Gradle daemons run: ./gradlew --stop diff --git a/build.gradle.kts b/build.gradle.kts index f688793a507..64dee0e0790 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -72,3 +72,21 @@ tasks { apiValidation { ignoredProjects.addAll(listOf("arrow-optics-ksp-plugin", "arrow-optics-test", "arrow-site")) } + + +val appleTest = tasks.create("appleTest") + +subprojects { + afterEvaluate { + val appleTargets = setOf("tvos", "watchos", "ios", "macos") + + extensions.findByType() + ?.sourceSets + ?.filter { appleTargets.any { target -> it.name.contains(target) } && it.name.contains("Test") } + ?.forEach { + tasks.findByName(it.name)?.let { task -> + appleTest.dependsOn(task) + } + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 590513cb905..e21490ebc1b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,8 +8,8 @@ dokka = "1.5.30" jUnit = "4.12" jUnitJupiter = "5.8.2" jUnitVintage = "5.5.2" -kotest = "5.0.2" -kotestGradle = "5.0.2" +kotest = "5.0.3" +kotestGradle = "5.0.3" kotlin = "1.6.10" kotlinBinaryCompatibilityValidator = "0.7.1" kotlinCompileTesting = "1.4.7" diff --git a/settings.gradle.kts b/settings.gradle.kts index 56f7dc02fa9..2ed8dee1ce2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,6 +11,10 @@ pluginManagement { } } +plugins { + id("com.gradle.enterprise") version "3.8" +} + dependencyResolutionManagement { repositories { mavenCentral() @@ -62,3 +66,10 @@ project(":arrow-stack").projectDir = file("arrow-libs/stack") // SITE include("arrow-site") project(":arrow-site").projectDir = file("arrow-site") + +gradleEnterprise { + buildScan { + termsOfServiceUrl = "https://gradle.com/terms-of-service" + termsOfServiceAgree = "yes" + } +}