Skip to content

Update Java Stellar SDK Version #1

Update Java Stellar SDK Version

Update Java Stellar SDK Version #1

name: "Update Java Stellar SDK Version"
on:
workflow_dispatch:
inputs:
version:
description: "New java-stellar-sdk version (e.g., 1.5.2 or 2.0.0-beta1)"
required: true
type: string
is_prerelease:
description: "Is this a pre-release version?"
required: true
type: boolean
default: false
jobs:
update-version:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Git
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
- name: Determine PR title prefix
id: pr-prefix
run: |
if [ "${{ inputs.is_prerelease }}" = "true" ]; then
echo "prefix=pre-release" >> $GITHUB_OUTPUT
else
echo "prefix=release" >> $GITHUB_OUTPUT
fi
- name: Create feature branch
run: |
BRANCH_NAME="update-version-${{ inputs.version }}"
git checkout -b "$BRANCH_NAME"
- name: Update build.gradle.kts (root)
run: |
# Get current version from build.gradle.kts
CURRENT_VERSION=$(grep '^version = ' build.gradle.kts | sed 's/version = "\(.*\)"/\1/')
echo "Current version: $CURRENT_VERSION"
echo "New version: ${{ inputs.version }}"
# Update version
sed -i.bak 's/^version = ".*"/version = "${{ inputs.version }}"/' build.gradle.kts
# Update dependency version
sed -i.bak 's/implementation("network\.lightsail:stellar-sdk:.*")/implementation("network.lightsail:stellar-sdk:${{ inputs.version }}")/' build.gradle.kts
# Remove backup files
rm -f build.gradle.kts.bak
- name: Update README.md
run: |
# Update Maven dependency version
sed -i.bak 's/<version>.*<\/version>/<version>${{ inputs.version }}<\/version>/' README.md
# Update Gradle implementation version
sed -i.bak "s/implementation 'network\.lightsail:stellar-sdk-android-spi:.*'/implementation 'network.lightsail:stellar-sdk-android-spi:${{ inputs.version }}'/" README.md
# Remove backup files
rm -f README.md.bak
- name: Update android_test/app/build.gradle.kts
run: |
# Update jar file reference
sed -i.bak 's/implementation(files("libs\/stellar-sdk-android-spi-.*\.jar"))/implementation(files("libs\/stellar-sdk-android-spi-${{ inputs.version }}.jar"))/' android_test/app/build.gradle.kts
# Update dependency version
sed -i.bak 's/implementation("network\.lightsail:stellar-sdk:.*")/implementation("network.lightsail:stellar-sdk:${{ inputs.version }}")/' android_test/app/build.gradle.kts
# Remove backup files
rm -f android_test/app/build.gradle.kts.bak
- name: Update CHANGELOG.md
run: |
# Get current version from build.gradle.kts to find what we're updating from
git show HEAD:build.gradle.kts | grep '^version = ' | sed 's/version = "\(.*\)"/\1/' > current_version.txt
PREVIOUS_VERSION=$(cat current_version.txt)
# Create temporary file with new changelog entry
echo "# Changelog" > CHANGELOG_new.md
echo "" >> CHANGELOG_new.md
echo "## ${{ inputs.version }}" >> CHANGELOG_new.md
echo "* Bump \`java-stellar-sdk\` from $PREVIOUS_VERSION to ${{ inputs.version }}" >> CHANGELOG_new.md
echo "" >> CHANGELOG_new.md
# Append the rest of the changelog (skip the first line "# Changelog")
tail -n +2 CHANGELOG.md >> CHANGELOG_new.md
# Replace the original file
mv CHANGELOG_new.md CHANGELOG.md
# Clean up
rm -f current_version.txt
- name: Commit changes
run: |
git add build.gradle.kts README.md android_test/app/build.gradle.kts CHANGELOG.md
git commit -m "${{ steps.pr-prefix.outputs.prefix }}: ${{ inputs.version }}"
- name: Push changes
run: |
git push origin "update-version-${{ inputs.version }}"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update-version-${{ inputs.version }}
title: "${{ steps.pr-prefix.outputs.prefix }}: ${{ inputs.version }}"
body: |
This PR updates the java-stellar-sdk version to ${{ inputs.version }}.
## Changes
- Updated version in `build.gradle.kts`
- Updated dependency versions in `build.gradle.kts` and `android_test/app/build.gradle.kts`
- Updated version references in `README.md`
- Added changelog entry in `CHANGELOG.md`
## Type
${{ steps.pr-prefix.outputs.prefix == 'pre-release' && '🚀 Pre-release' || '📦 Release' }}
Auto-generated by GitHub Actions.
draft: false
delete-branch: true