Skip to content

Commit 21d09f1

Browse files
committed
feat: Add GitHub Action to upgrade Stellar SDK
1 parent 8444803 commit 21d09f1

File tree

2 files changed

+116
-1
lines changed

2 files changed

+116
-1
lines changed

.github/workflows/update-version.yml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
name: "Update Java Stellar SDK Version"
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: "New java-stellar-sdk version (e.g., 1.5.2 or 2.0.0-beta1)"
8+
required: true
9+
type: string
10+
is_prerelease:
11+
description: "Is this a pre-release version?"
12+
required: true
13+
type: boolean
14+
default: false
15+
update_readme:
16+
description: "Update README.md version references?"
17+
required: true
18+
type: boolean
19+
default: true
20+
21+
jobs:
22+
update-version:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout code
26+
uses: actions/checkout@v4
27+
with:
28+
token: ${{ secrets.GITHUB_TOKEN }}
29+
30+
- name: Set up Git
31+
run: |
32+
git config --local user.email "[email protected]"
33+
git config --local user.name "GitHub Action"
34+
35+
- name: Determine PR title prefix
36+
id: pr-prefix
37+
run: |
38+
if [ "${{ inputs.is_prerelease }}" = "true" ]; then
39+
echo "prefix=pre-release" >> $GITHUB_OUTPUT
40+
else
41+
echo "prefix=release" >> $GITHUB_OUTPUT
42+
fi
43+
44+
- name: Update build.gradle.kts (root)
45+
run: |
46+
# Get current version from build.gradle.kts
47+
CURRENT_VERSION=$(grep '^version = ' build.gradle.kts | sed 's/version = "\(.*\)"/\1/')
48+
echo "Current version: $CURRENT_VERSION"
49+
echo "New version: ${{ inputs.version }}"
50+
51+
# Update version
52+
sed -i.bak 's/^version = ".*"/version = "${{ inputs.version }}"/' build.gradle.kts
53+
54+
# Update dependency version
55+
sed -i.bak 's/implementation("network\.lightsail:stellar-sdk:.*")/implementation("network.lightsail:stellar-sdk:${{ inputs.version }}")/' build.gradle.kts
56+
57+
# Remove backup files
58+
rm -f build.gradle.kts.bak
59+
60+
- name: Update README.md
61+
if: ${{ inputs.update_readme }}
62+
run: |
63+
# Update Maven dependency version
64+
sed -i.bak 's/<version>.*<\/version>/<version>${{ inputs.version }}<\/version>/' README.md
65+
66+
# Update Gradle implementation version
67+
sed -i.bak "s/implementation 'network\.lightsail:stellar-sdk-android-spi:.*'/implementation 'network.lightsail:stellar-sdk-android-spi:${{ inputs.version }}'/" README.md
68+
69+
# Remove backup files
70+
rm -f README.md.bak
71+
72+
- name: Update android_test/app/build.gradle.kts
73+
run: |
74+
# Update jar file reference
75+
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
76+
77+
# Update dependency version
78+
sed -i.bak 's/implementation("network\.lightsail:stellar-sdk:.*")/implementation("network.lightsail:stellar-sdk:${{ inputs.version }}")/' android_test/app/build.gradle.kts
79+
80+
# Remove backup files
81+
rm -f android_test/app/build.gradle.kts.bak
82+
83+
- name: Update CHANGELOG.md
84+
run: |
85+
# Get current version from build.gradle.kts to find what we're updating from
86+
git show HEAD:build.gradle.kts | grep '^version = ' | sed 's/version = "\(.*\)"/\1/' > current_version.txt
87+
PREVIOUS_VERSION=$(cat current_version.txt)
88+
89+
# Create temporary file with new changelog entry
90+
echo "# Changelog" > CHANGELOG_new.md
91+
echo "" >> CHANGELOG_new.md
92+
echo "## ${{ inputs.version }}" >> CHANGELOG_new.md
93+
echo "* Bump \`java-stellar-sdk\` from $PREVIOUS_VERSION to ${{ inputs.version }}" >> CHANGELOG_new.md
94+
95+
# Append the rest of the changelog (skip the first line "# Changelog")
96+
tail -n +2 CHANGELOG.md >> CHANGELOG_new.md
97+
98+
# Replace the original file
99+
mv CHANGELOG_new.md CHANGELOG.md
100+
101+
# Clean up
102+
rm -f current_version.txt
103+
104+
- name: Create Pull Request
105+
uses: peter-evans/create-pull-request@v5
106+
with:
107+
token: ${{ secrets.GITHUB_TOKEN }}
108+
branch: update-version-${{ inputs.version }}
109+
commit-message: "${{ steps.pr-prefix.outputs.prefix }}: ${{ inputs.version }}"
110+
title: "${{ steps.pr-prefix.outputs.prefix }}: ${{ inputs.version }}"
111+
body: |
112+
This PR updates the java-stellar-sdk version to ${{ inputs.version }}.
113+
114+
Auto-generated by GitHub Actions.
115+
draft: false
116+
delete-branch: true

hello.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)