Skip to content

Commit 2030505

Browse files
author
Sayaan Saha
authored
Feat/release script (#231)
1 parent 92defca commit 2030505

File tree

4 files changed

+68
-2
lines changed

4 files changed

+68
-2
lines changed

AndroidSDK/res/values/strings.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version='1.0' encoding='utf-8'?>
22
<resources>
33

44
<string name="app_name">Android SDK</string>
5+
<string name="sdk_version">4.1.1</string>
56

6-
</resources>
7+
</resources>

Tools/create-release.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env python2.7
2+
3+
import semver
4+
import xml.etree.ElementTree as ET
5+
import sys
6+
7+
ANDROID_STRINGS_XML = "AndroidSDK/res/values/strings.xml"
8+
9+
def get_current_version(root):
10+
for element in root.iter("string"):
11+
if element.attrib.get("name") == "sdk_version":
12+
return element.text
13+
14+
def update_version(root, xml, version):
15+
for element in root.iter("string"):
16+
if element.attrib.get("name") == "sdk_version":
17+
element.text = str(version)
18+
xml.write(ANDROID_STRINGS_XML, encoding='utf-8', xml_declaration=True)
19+
20+
"""Type: Major/Minor/Patch"""
21+
22+
"""
23+
1. Read in values.xml
24+
2. Increment the SDK version value based on correct semVers
25+
3. Return: new version number
26+
"""
27+
def main():
28+
release_type = sys.argv[1]
29+
xml = ET.parse(ANDROID_STRINGS_XML)
30+
root = xml.getroot()
31+
32+
current_version = get_current_version(root)
33+
34+
if release_type == "patch":
35+
release_version = semver.bump_patch(current_version)
36+
elif release_type == "minor":
37+
release_version = semver.bump_minor(current_version)
38+
elif release_type == "major":
39+
release_version = semver.bump_major(current_version)
40+
else:
41+
raise Exception("Please pick one patch/minor/major")
42+
43+
update_version(root, xml, release_version)
44+
sys.stdout.write(release_version)
45+
46+
if __name__ == "__main__":
47+
main()

create-release.bash

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env bash
2+
set -o noglob
3+
set -o nounset
4+
set -o xtrace
5+
set -o pipefail
6+
set -o errexit
7+
8+
#######################################
9+
# Create a new release branch
10+
#######################################
11+
TYPE=$1
12+
13+
release_version=$(./Tools/create-release.py ${TYPE})
14+
15+
# create a branch, push on success
16+
git checkout -b "release/${release_version}"
17+
git push --set-upstream origin "release/${release_version}"

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
semver==2.8.1

0 commit comments

Comments
 (0)