Skip to content

chore(release): bump version to 1.4.0 #17

chore(release): bump version to 1.4.0

chore(release): bump version to 1.4.0 #17

Workflow file for this run

name: Release
on:
push:
tags:
- "[0-9]*.[0-9]*.[0-9]*"
- "[0-9]*.[0-9]*.[0-9]*-rc.*"
workflow_dispatch:
inputs:
version:
description: "Version to publish, for example 1.0.0-rc.10"
required: true
type: string
jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
env:
HAS_GRADLE_PLUGIN_PUBLISH_SECRETS: ${{ secrets.GRADLE_PUBLISH_KEY != '' && secrets.GRADLE_PUBLISH_SECRET != '' }}
RELEASE_VERSION: ${{ github.event_name == 'workflow_dispatch' && inputs.version || github.ref_name }}
steps:
- name: Check out
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "21"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Verify
run: ./gradlew test :demo:assembleDebug :runtime:assembleRelease :demo:assembleRelease :demo:assembleDebugAndroidTest
- name: Validate Maven Central secrets
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
run: |
missing=0
for name in MAVEN_CENTRAL_USERNAME MAVEN_CENTRAL_PASSWORD GPG_PRIVATE_KEY GPG_PASSPHRASE GPG_KEY_ID; do
if [ -z "${!name}" ]; then
echo "::error::Missing required secret: $name"
missing=1
fi
done
exit "$missing"
- name: Import GPG signing key
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
run: |
mkdir -m 700 -p ~/.gnupg
printf '%s\n' 'pinentry-mode loopback' > ~/.gnupg/gpg.conf
printf '%s\n' 'allow-loopback-pinentry' > ~/.gnupg/gpg-agent.conf
printf '%s' "$GPG_PRIVATE_KEY" | gpg --batch --import
gpg --batch --list-secret-keys --with-fingerprint "$GPG_KEY_ID"
- name: Publish Maven artifacts
run: |
./gradlew publishAndReleaseToMavenCentral \
-Playoutx2c.enablePublishing=true \
-Playoutx2c.useGpgSigning=true \
"-Psigning.gnupg.keyName=${GPG_KEY_ID}" \
"-Psigning.gnupg.passphrase=${GPG_PASSPHRASE}" \
-PmavenCentralDeploymentValidation=PUBLISHED \
--no-configuration-cache
env:
VERSION: ${{ env.RELEASE_VERSION }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- name: Publish Gradle plugin
if: env.HAS_GRADLE_PLUGIN_PUBLISH_SECRETS == 'true'
run: ./gradlew publishPlugins -Playoutx2c.enablePublishing=true --no-configuration-cache
env:
VERSION: ${{ env.RELEASE_VERSION }}
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
- name: Skip Gradle plugin publish
if: env.HAS_GRADLE_PLUGIN_PUBLISH_SECRETS != 'true'
run: echo "Skipping Gradle Plugin Portal publish because GRADLE_PUBLISH_KEY/SECRET are not configured."