Skip to content

Commit

Permalink
Add Arrow Gradle config (#2543)
Browse files Browse the repository at this point in the history
  • Loading branch information
JavierSegoviaCordoba committed Oct 1, 2021
1 parent 9e10884 commit b965407
Show file tree
Hide file tree
Showing 62 changed files with 687 additions and 895 deletions.
13 changes: 11 additions & 2 deletions .github/workflows/publish.yml
Expand Up @@ -17,6 +17,15 @@ env:
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.ORG_GRADLE_PROJECT_signingKey }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.ORG_GRADLE_PROJECT_signingPassword }}
GRADLE_OPTS: -Dorg.gradle.configureondemand=true -Dorg.gradle.parallel=false -Dkotlin.incremental=false -Dorg.gradle.jvmargs="-Xmx3g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
OSS_USER: '${{ secrets.OSS_USER }}'
OSS_TOKEN: '${{ secrets.OSS_TOKEN }}'
OSS_STAGING_PROFILE_ID: '${{ secrets.OSS_STAGING_PROFILE_ID }}'
SIGNING_KEY_NAME: '${{ secrets.SIGNING_KEY_NAME }}'
SIGNING_KEY_ID: '${{ secrets.SIGNING_KEY_ID }}'
SIGNING_KEY_PASSPHRASE: '${{ secrets.SIGNING_KEY_PASSPHRASE }}'
SIGNING_KEY: '${{ secrets.SIGNING_KEY }}'
GRADLE_PUBLISH_KEY: '${{ secrets.GRADLE_PUBLISH_KEY }}'
GRADLE_PUBLISH_SECRET: '${{ secrets.GRADLE_PUBLISH_SECRET }}'

jobs:
publish_apple_linux_jvm_js:
Expand Down Expand Up @@ -52,7 +61,7 @@ jobs:
- name: Publish Apple, Linux, JVM & JS targets
working-directory: arrow-libs
run: |
./gradlew publish
./gradlew publishToSonatype
echo "$(cat $BASEDIR/gradle.properties | grep VERSION_NAME | cut -d'=' -f2) Apple, Linux, JVM & JS deployed!"
publish_windows:
Expand Down Expand Up @@ -87,7 +96,7 @@ jobs:
- name: Publish Windows
working-directory: arrow-libs
run: |
./gradlew publishMingwX64PublicationToMavenRepository
./gradlew publishToSonatype
echo "$(cat gradle.properties | grep VERSION_NAME | cut -d'=' -f2) MingwX64 deployed!"
publish-arrow-stack:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pull_request.yml
Expand Up @@ -116,7 +116,7 @@ jobs:
- name: Build
working-directory: arrow-libs
run: ./gradlew macosX64Test iosX64Test macosArm64Test iosSimulatorArm64Test iosArm64TestBinaries iosArm64TestKlibrary iosArm32TestBinaries iosArm32TestKlibrary
run: ./gradlew iosX64Test macosX64Test

- name: "Prepare test reports"
if: ${{ always() }}
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
- name: Build
working-directory: arrow-libs
run: ./gradlew watchosX64Test watchosX86Test watchosSimulatorArm64Test watchosArm32TestBinaries watchosArm32TestKlibrary tvosX64Test tvosSimulatorArm64Test tvosArm64TestBinaries tvosArm64TestKlibrary
run: ./gradlew tvosX64Test watchosX64Test

- name: "Prepare test reports"
if: ${{ always() }}
Expand Down
35 changes: 0 additions & 35 deletions arrow-libs/ank/arrow-ank-gradle/build.gradle

This file was deleted.

40 changes: 40 additions & 0 deletions arrow-libs/ank/arrow-ank-gradle/build.gradle.kts
@@ -0,0 +1,40 @@
import org.jetbrains.kotlin.gradle.get

plugins {
id("java-gradle-plugin")
alias(libs.plugins.arrowGradleConfig.jvm)
alias(libs.plugins.arrowGradleConfig.publishJvm)
}

sourceSets {
main {
java.srcDirs("src/main/kotlin")
}
test {
java.srcDirs("src/test/kotlin")
}
}

tasks {
withType<ProcessResources> {
filesMatching("**/plugin.properties") {
filter { it.replace("%CURRENT_VERSION%", properties["projects.version"].toString()) }
filter { it.replace("%KOTLIN_VERSION%", libs.versions.kotlin.get()) }
}
}
}

gradlePlugin {
plugins {
create("ank") {
id = "ank-gradle-plugin"
implementationClass = "arrow.ank.AnkPlugin"
}
}
}

tasks.whenTaskAdded {
if (name.matches(".*Plugin.*MavenPublication.*".toRegex())) {
enabled = false
}
}
6 changes: 2 additions & 4 deletions arrow-libs/ank/arrow-ank-gradle/gradle.properties
@@ -1,5 +1,3 @@
# Maven publishing configuration
POM_NAME=Arrow Ank Gradle Plugin
POM_ARTIFACT_ID=arrow-ank-gradle
POM_PACKAGING=jar
POM_DESCRIPTION=Compile time docs verification and evaluation for Kotlin and Java
pom.name=Arrow Ank Gradle Plugin
pom.description=Compile time docs verification and evaluation for Kotlin and Java
18 changes: 0 additions & 18 deletions arrow-libs/ank/arrow-ank/build.gradle

This file was deleted.

16 changes: 16 additions & 0 deletions arrow-libs/ank/arrow-ank/build.gradle.kts
@@ -0,0 +1,16 @@
plugins {
alias(libs.plugins.arrowGradleConfig.jvm)
alias(libs.plugins.arrowGradleConfig.publishJvm)
}

apply(from = property("DOC_CREATION"))

dependencies {
implementation(projects.arrowFxCoroutines)
implementation(libs.kotlin.stdlibJDK8)

implementation(libs.kotlin.compiler)
implementation(libs.kotlin.scriptUtil)
runtimeOnly(libs.kotlin.reflect)
runtimeOnly(libs.kotlin.scriptingCompiler)
}
6 changes: 2 additions & 4 deletions arrow-libs/ank/arrow-ank/gradle.properties
@@ -1,6 +1,4 @@
# Maven publishing configuration
POM_NAME=Arrow Ank
POM_ARTIFACT_ID=arrow-ank
POM_PACKAGING=jar
POM_DESCRIPTION=Compile time docs verification and evaluation for Kotlin and Java
pom.name=Arrow Ank
pom.description=Compile time docs verification and evaluation for Kotlin and Java
kapt.incremental.apt=false
41 changes: 0 additions & 41 deletions arrow-libs/build.gradle

This file was deleted.

39 changes: 39 additions & 0 deletions arrow-libs/build.gradle.kts
@@ -0,0 +1,39 @@
buildscript {
apply(from = "gradle/setup.gradle")
}

plugins {
alias(libs.plugins.ktlint) apply false
alias(libs.plugins.dokka) apply false
alias(libs.plugins.animalSniffer) apply false
alias(libs.plugins.kotest.multiplatform) apply false
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.binaryCompatibilityValidator)
alias(libs.plugins.arrowGradleConfig.nexus)
}

apply(from = "gradle/main.gradle")

tasks {
val generateDoc by creating(Exec::class) {
group = "documentation"
commandLine("sh", "gradlew", "dokkaGfm")
}
val runValidation by creating(Exec::class) {
group = "documentation"
workingDir = file("../arrow-site")
commandLine("sh", "gradlew", "dokkaGfm")
}
val buildDoc by creating(Exec::class) {
group = "documentation"
description = "Generates and validates the documentation"
dependsOn(generateDoc)
dependsOn(runValidation)
}

runValidation.mustRunAfter(generateDoc)
}

apiValidation {
ignoredProjects.add("jekyll")
}
2 changes: 1 addition & 1 deletion arrow-libs/core/.editorconfig
9 changes: 0 additions & 9 deletions arrow-libs/core/arrow-annotations/build.gradle

This file was deleted.

32 changes: 32 additions & 0 deletions arrow-libs/core/arrow-annotations/build.gradle.kts
@@ -0,0 +1,32 @@
plugins {
alias(libs.plugins.arrowGradleConfig.multiplatform)
alias(libs.plugins.arrowGradleConfig.publishMultiplatform)
}

kotlin {
sourceSets {
commonMain {
dependencies {
implementation(libs.kotlin.stdlibCommon)
}
}
jvmMain {
dependencies {
implementation(libs.kotlin.stdlibJDK8)
}
}
jvmTest {
dependencies {
runtimeOnly(libs.kotest.runnerJUnit5)
}
}
jsMain {
dependencies {
implementation(libs.kotlin.stdlibJS)
}
}
}
}

apply(from = property("DOC_CREATION"))
apply(from = property("ANIMALSNIFFER_MPP"))
4 changes: 1 addition & 3 deletions arrow-libs/core/arrow-annotations/gradle.properties
@@ -1,4 +1,2 @@
# Maven publishing configuration
POM_NAME=Arrow Annotations
POM_ARTIFACT_ID=arrow-annotations
POM_PACKAGING=jar
pom.name=Arrow Annotations
21 changes: 0 additions & 21 deletions arrow-libs/core/arrow-continuations/build.gradle

This file was deleted.

39 changes: 39 additions & 0 deletions arrow-libs/core/arrow-continuations/build.gradle.kts
@@ -0,0 +1,39 @@
plugins {
alias(libs.plugins.arrowGradleConfig.multiplatform)
alias(libs.plugins.arrowGradleConfig.publishMultiplatform)
}

apply(from = property("TEST_COVERAGE"))
apply(from = property("DOC_CREATION"))
apply(from = property("ANIMALSNIFFER_MPP"))
apply(plugin = "io.kotest.multiplatform")

kotlin {
sourceSets {
commonMain {
dependencies {
implementation(libs.kotlin.stdlibCommon)
}
}
commonTest {
dependencies {
implementation(projects.arrowCoreTest)
}
}
jvmMain {
dependencies {
implementation(libs.kotlin.stdlibJDK8)
}
}
jvmTest {
dependencies {
runtimeOnly(libs.kotest.runnerJUnit5)
}
}
jsMain {
dependencies {
implementation(libs.kotlin.stdlibJS)
}
}
}
}
4 changes: 1 addition & 3 deletions arrow-libs/core/arrow-continuations/gradle.properties
@@ -1,6 +1,4 @@
# Maven publishing configuration
POM_NAME=Arrow Continuations
POM_ARTIFACT_ID=arrow-continuations
POM_PACKAGING=jar
pom.name=Arrow Continuations
# Build configuration
kapt.incremental.apt=false

0 comments on commit b965407

Please sign in to comment.