Skip to content

Commit 3f6e6c1

Browse files
committed
feat: update scripts
1 parent ee33ce5 commit 3f6e6c1

File tree

7 files changed

+112
-76
lines changed

7 files changed

+112
-76
lines changed

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
.PHONY: bump-version publish publish-local
1+
.PHONY: bump-first-version bump-version publish publish-local
2+
3+
first-version:
4+
@PYTHONPATH="$$(pwd)/scripts" python scripts/bump-version.py --first-version
25

36
bump-version:
4-
@deno run --allow-run --allow-write --allow-read scripts/bump-version.js
7+
@PYTHONPATH="$$(pwd)/scripts" python scripts/bump-version.py
58

69
publish:
710
@./gradlew publishAndReleaseToMavenCentral

scripts/bump-version.js

Lines changed: 0 additions & 46 deletions
This file was deleted.

scripts/bump-version.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import argparse
2+
import subprocess
3+
import json
4+
import re
5+
from functions import replace_version
6+
7+
parser = argparse.ArgumentParser(
8+
prog='Bump version script',
9+
description='Create new version number and add the git tag'
10+
)
11+
12+
parser.add_argument('-f', '--first-version', dest='first_version', default=False, action='store_true')
13+
parser.add_argument('-a', '--alpha', default=False, action='store_true')
14+
parser.add_argument('-b', '--beta', default=False, action='store_true')
15+
16+
args = parser.parse_args()
17+
18+
version = None
19+
result = subprocess.run(['git', 'cliff', '--unreleased', '--bump', '--context'], capture_output=True)
20+
result.check_returncode()
21+
22+
if result.stdout is not None:
23+
context = json.loads(result.stdout.decode('utf-8'))
24+
25+
if len(context) > 0 and 'version' in context[0].keys():
26+
version = re.sub(r'^([0-9.]+\.?[a-z]*\.?[0-9]*)', r'v\1', context[0]['version'])
27+
28+
if version is None:
29+
print('There is not a new version available')
30+
exit(0)
31+
32+
if args.first_version is True and version is None:
33+
version = 'v0.0.0'
34+
elif args.alpha is True:
35+
version = re.sub(r'^(v?[0-9.]+)$', r'\1-alpha.1', version)
36+
elif args.beta is True:
37+
version = re.sub(r'^(v?[0-9.]+)$', r'\1-beta.1', version)
38+
else:
39+
version = re.sub(r'^(v[0-9.]+)(-[a-z]+\.?[0-9]*)$', r'\1', version)
40+
41+
print(f'The new version is {version}')
42+
43+
subprocess.run(['git', 'tag', version]).check_returncode()
44+
subprocess.run(['git', 'cliff', '--bump', '-o', 'CHANGELOG.md']).check_returncode()
45+
46+
version_code = re.sub(r'^v', '', version)
47+
48+
buildGradleFiles = [
49+
'core/build.gradle.kts',
50+
'spring-boot/build.gradle.kts',
51+
]
52+
53+
for buildGradleFile in buildGradleFiles:
54+
replace_version(
55+
file_path=buildGradleFile,
56+
search=r'^version = "v?[0-9.]+\-?[a-z]*\.?[0-9]*"',
57+
replacement=f'version = "{version_code}"'
58+
)
59+
60+
replace_version(
61+
file_path='README.md',
62+
search=r'io\.github\.magonxesp:([a-z\-]+):v?[0-9.]+\-?[a-z]*\.?[0-9]*',
63+
replacement=r'io.github.magonxesp:\1:' + version_code
64+
)
65+
66+
files = [
67+
'CHANGELOG.md',
68+
'core/build.gradle.kts',
69+
'spring-boot/build.gradle.kts',
70+
'README.md'
71+
]
72+
73+
for file in files:
74+
subprocess.run(['git', 'add', file]).check_returncode()
75+
76+
subprocess.run(['git', 'commit', '-m', f'🚀 bump version to {version}']).check_returncode()
77+
print(f'🚀 bumped to version {version}')
78+
print('now you can run "git push"')

scripts/functions.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import re
2+
3+
4+
def replace_version(file_path, search, replacement):
5+
with open(file_path, 'r') as reader:
6+
content = reader.read()
7+
with open(file_path, 'w') as writer:
8+
writer.write(re.sub(search, replacement, content, flags=re.MULTILINE))

scripts/helpers.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

scripts/replace-gradle-version.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

scripts/replace-gradle-version.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import argparse
2+
import re
3+
from functions import replace_version
4+
5+
parser = argparse.ArgumentParser(prog='Gradle version replace',)
6+
parser.add_argument('version')
7+
args = parser.parse_args()
8+
9+
version_code = re.sub(r'^v', '', args.version)
10+
11+
files = [
12+
'core/build.gradle.kts',
13+
'spring-boot/build.gradle.kts',
14+
]
15+
16+
for file in files:
17+
replace_version(
18+
file_path=file,
19+
search=r'^version = "v?[0-9.]+\-?[a-z]*\.?[0-9]*"',
20+
replacement=f'version = "{version_code}"'
21+
)

0 commit comments

Comments
 (0)