diff --git a/.github/workflows/release-snapshot.yaml b/.github/workflows/release-snapshot.yaml index 3c27f43383..341e025ead 100644 --- a/.github/workflows/release-snapshot.yaml +++ b/.github/workflows/release-snapshot.yaml @@ -30,7 +30,7 @@ jobs: VERSION=$(./gradlew :core:properties -q | grep "version:" | awk '{print $2}') echo "version=${VERSION}" >> $GITHUB_OUTPUT - - name: Upload SNAPSHOT versions for scalardb, scalardb-schema-loader, and scalardb-integration-test to Maven Snapshot Repository + - name: Upload SNAPSHOT versions for scalardb, scalardb-schema-loader, scalardb-data-loader-core, and scalardb-integration-test to Maven Snapshot Repository if: contains(steps.version.outputs.version, '-SNAPSHOT') run: | echo "${{secrets.SIGNING_SECRET_KEY_RING}}" | base64 -d > ~/.gradle/secring.gpg diff --git a/.github/workflows/upload-artifacts.yaml b/.github/workflows/upload-artifacts.yaml index 02bc787680..3a0635c954 100644 --- a/.github/workflows/upload-artifacts.yaml +++ b/.github/workflows/upload-artifacts.yaml @@ -57,7 +57,7 @@ jobs: run: | docker push ghcr.io/scalar-labs/scalardb-schema-loader:${{ steps.version.outputs.version }} - - name: Upload scalardb, scalardb-schema-loader, and scalardb-integration-test to Maven Central Repository + - name: Upload scalardb, scalardb-schema-loader, scalardb-data-loader-core, and scalardb-integration-test to Maven Central Repository run: | echo "${{secrets.SIGNING_SECRET_KEY_RING}}" | base64 -d > ~/.gradle/secring.gpg ./gradlew publish \ diff --git a/data-loader/core/build.gradle b/data-loader/core/build.gradle index 5239fd42ef..4c66c65712 100644 --- a/data-loader/core/build.gradle +++ b/data-loader/core/build.gradle @@ -2,6 +2,9 @@ plugins { id 'net.ltgt.errorprone' version "${errorpronePluginVersion}" id 'com.github.johnrengelman.shadow' version "${shadowPluginVersion}" id 'com.github.spotbugs' version "${spotbugsPluginVersion}" + id 'maven-publish' + id 'signing' + id 'base' } archivesBaseName = "scalardb-data-loader-core" @@ -41,3 +44,67 @@ spotbugsTest.reports { html.enabled = true } spotbugsTest.excludeFilter = file("${project.rootDir}/gradle/spotbugs-exclude.xml") + +if (project.gradle.startParameter.taskNames.any { it.endsWith('publish') } || + project.gradle.startParameter.taskNames.any { it.endsWith('publishToMavenLocal') }) { + // not to publish the fat jar to maven central + shadowJar.enabled = false +} + +publishing { + publications { + mavenJava(MavenPublication) { + artifactId = 'scalardb-data-loader-core' + from components.java + pom { + name = 'ScalarDB Data Loader Core' + description = 'Core library for exporting data from and importing data into ScalarDB' + url = 'https://github.com/scalar-labs/scalardb' + licenses { + license { + name = 'Apache License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0' + } + } + developers { + developer { + id = 'hiroyuki' + name = 'Hiroyuki Yamada' + email = 'hiroyuki.yamada@scalar-labs.com' + } + developer { + id = 'brfrn169' + name = 'Toshihiro Suzuki' + email = 'brfrn169@gmail.com' + } + developer { + id = 'Torch3333' + name = 'Vincent Guilpain' + email = 'vincent.guilpain@scalar-labs.com' + } + } + scm { + connection = 'scm:git:https://github.com/scalar-labs/scalardb.git' + developerConnection = 'scm:git:https://github.com/scalar-labs/scalardb.git' + url = 'https://github.com/scalar-labs/scalardb' + } + } + } + } + repositories { + maven { + def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" + def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" + url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl + credentials { + username = project.properties['ossrhUsername'] ?: "" + password = project.properties['ossrhPassword'] ?: "" + } + } + } +} + +signing { + required { project.gradle.taskGraph.hasTask("publish") } + sign publishing.publications.mavenJava +}