From d659a2ee522244e748338f36dce1755c42c8c77a 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 --- .github/workflows/publish-maven.yaml | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) 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..6243b8b25 --- /dev/null +++ b/.github/workflows/publish-maven.yaml @@ -0,0 +1,69 @@ +# +# 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' + pull_request: + +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 }}" --info + 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 }}" --info + fi