Build Release Candidates #21
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Pre-Release - Create New Release Candidate | |
env: | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_TOKEN_USER }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_TOKEN_USER_PASSWORD }} | |
MAVEN_QA_USER: github | |
MAVEN_QA_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} | |
mavenSigningKeyId: ${{ secrets.MAVEN_ANDROID_SIGNING_KEY }} | |
mavenSigningKeyRingFileEncoded: ${{ secrets.MAVEN_ANDROID_GPG_KEY }} | |
mavenSigningKeyPassword: ${{ secrets.MAVEN_ANDROID_SIGNING_PASSWORD }} | |
on: | |
workflow_call: | |
inputs: | |
version_of_rc: | |
required: true | |
type: string | |
workflow_dispatch: | |
inputs: | |
version_of_rc: | |
description: 'Version to create new RC for. Specify <major.minor> only, e.g. 6.3' | |
required: true | |
patch_number: | |
description: 'Patch number. e.g. for 6.3.1, use "1". Defaults to 0' | |
default: '0' | |
required: true | |
jobs: | |
release: | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
jdk-version: [ "17" ] | |
ndk-version: [ "21.4.7075529" ] | |
steps: | |
- name: Configure git | |
run: | | |
git config --global user.name 'embrace-ci[bot]' | |
git config --global user.email 'embrace-ci@users.noreply.github.com' | |
- name: Checkout SDK | |
uses: actions/checkout@v4 | |
with: | |
ref: release/${{ github.event.inputs.version_of_rc }} | |
token: ${{ secrets.CD_GITHUB_TOKEN }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
~/.m2/repository | |
~/.sonar/cache | |
key: ${{ runner.os }}-gradle-jdk${{ matrix.jdk-version }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle | |
- name: Install JDK ${{ matrix.jdk-version }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: ${{ matrix.jdk-version }} | |
- name: Setup NDK ${{ matrix.ndk-version }} | |
run: | | |
export ANDROID_ROOT=/usr/local/lib/android | |
export ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk | |
export ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle | |
ln -sfn $ANDROID_SDK_ROOT/ndk/${{ matrix.ndk-version }} $ANDROID_NDK_ROOT | |
- name: Validate Gradle wrapper | |
uses: gradle/wrapper-validation-action@v3 | |
- name: Generate SDK RC - Publish and close Sonatype repository | |
run: | | |
./gradlew clean check publishReleasePublicationToSonatype closeSonatypeStagingRepository -Dorg.gradle.parallel=false --stacktrace | |
- name: Archive Test Results | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android-sdk-test-results | |
path: embrace-android-sdk/build/reports/tests/ | |
- name: Set version tag in SDK | |
run: | | |
git push origin :refs/tags/${{ github.event.inputs.version_of_rc }}.${{ github.event.inputs.patch_number }} | |
git tag -f ${{ github.event.inputs.version_of_rc }}.${{ github.event.inputs.patch_number }} | |
git push origin --tags | |
- name: Checkout Swazzler | |
uses: actions/checkout@v4 | |
with: | |
repository: embrace-io/embrace-swazzler3 | |
ref: release/${{ github.event.inputs.version_of_rc }} | |
token: ${{ secrets.CD_GITHUB_TOKEN }} | |
- name: Generate Swazzler RC - Publish and Close repository | |
run: | | |
./gradlew clean check publishToSonatype closeSonatypeStagingRepository -Dorg.gradle.parallel=false --stacktrace | |
- name: Set version tag in Swazzler | |
run: | | |
git push origin :refs/tags/${{ github.event.inputs.version_of_rc }}.${{ github.event.inputs.patch_number }} | |
git tag -f ${{ github.event.inputs.version_of_rc }}.${{ github.event.inputs.patch_number }} | |
git push origin --tags | |
- name: Cleanup Gradle Cache | |
# Based on https://docs.github.com/en/actions/guides/building-and-testing-java-with-gradle#caching-dependencies | |
# Remove some files from the Gradle cache, so they aren't cached by GitHub Actions. | |
# Restoring these files from a GitHub Actions cache might cause problems for future builds. | |
run: | | |
rm -f ~/.gradle/caches/modules-2/modules-2.lock | |
rm -f ~/.gradle/caches/modules-2/gc.properties |