From eac50111eb3cf2ca226a875810e33cd7a8fec7fa Mon Sep 17 00:00:00 2001 From: Paul Latzelsperger Date: Tue, 23 May 2023 19:40:12 +0200 Subject: [PATCH] build: add workflow to manually release maven artefacts change group property --- .github/workflows/publish-maven.yaml | 68 ++++++++++++++++++++++++++++ build.gradle.kts | 13 ++++-- gradle.properties | 2 +- 3 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/publish-maven.yaml diff --git a/.github/workflows/publish-maven.yaml b/.github/workflows/publish-maven.yaml new file mode 100644 index 000000000..5624843f9 --- /dev/null +++ b/.github/workflows/publish-maven.yaml @@ -0,0 +1,68 @@ +# +# Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# Copyright (c) 2021, 2023 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License, Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +--- +name: "Manually publish Maven Artefacts to OSSRH" + +on: + workflow_dispatch: + inputs: + version: + required: false + description: 'a semver string denoting the version. Append -SNAPSHOT for snapshots. If ommitted, the version is taken from gradle.properties' + +concurrency: + # cancel only running jobs on pull requests + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + maven-release: + name: 'Publish all artefacts to Sonatype/MavenCentral' + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + # Set-Up + - uses: actions/checkout@v3.5.2 + - uses: ./.github/actions/setup-java + + # Import GPG Key + - uses: ./.github/actions/import-gpg-key + name: "Import GPG Key" + with: + gpg-private-key: ${{ secrets.ORG_GPG_PRIVATE_KEY }} + + # publish releases + - name: Publish version + env: + OSSRH_PASSWORD: ${{ secrets.ORG_OSSRH_PASSWORD }} + OSSRH_USER: ${{ secrets.ORG_OSSRH_USERNAME }} + run: |- + if [ -z ${{ inputs.version }} ]; + then + VERSION=$(./gradlew properties -q | grep "version:" | awk '{print $2}') + echo "Publishing using version from gradle.properties: $VERSION" + ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --no-parallel -Pversion=$VERSION -Psigning.gnupg.executable=gpg -Psigning.gnupg.passphrase="${{ secrets.ORG_GPG_PASSPHRASE }}" + else + echo "Publishing using version from parameter: ${{ inputs.version }}" + ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository --no-parallel -Pversion=${{ inputs.version }} -Psigning.gnupg.executable=gpg -Psigning.gnupg.passphrase="${{ secrets.ORG_GPG_PASSPHRASE }}" + fi diff --git a/build.gradle.kts b/build.gradle.kts index 47207af31..e0c9e9a48 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,6 +19,7 @@ import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage import com.github.jengelman.gradle.plugins.shadow.ShadowJavaPlugin +import java.time.Duration plugins { `java-library` @@ -27,13 +28,13 @@ plugins { id("com.diffplug.spotless") version "6.18.0" id("com.github.johnrengelman.shadow") version "8.1.1" id("com.bmuschko.docker-remote-api") version "9.3.1" + id("io.github.gradle-nexus.publish-plugin") version "1.3.0" } val javaVersion: String by project val txScmConnection: String by project val txWebsiteUrl: String by project val txScmUrl: String by project -val groupId: String by project val annotationProcessorVersion: String by project val metaModelVersion: String by project @@ -88,10 +89,9 @@ allprojects { metaModel.set(metaModelVersion) } - val gid = groupId pom { // this is actually important, so we can publish under the correct GID - groupId = gid + groupId = project.group.toString() projectName.set(project.name) description.set("edc :: ${project.name}") projectUrl.set(txWebsiteUrl) @@ -171,3 +171,10 @@ subprojects { } } } + +nexusPublishing { + transitionCheckOptions { + maxRetries.set(120) + delayBetween.set(Duration.ofSeconds(10)) + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 252b91a48..a8cefdf01 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -groupId=org.eclipse.tractusx.edc +group=org.eclipse.tractusx.edc version=0.4.1-SNAPSHOT javaVersion=11 # configure the build: