summaryrefslogtreecommitdiff
path: root/src/libs/lvgl/scripts/release/release.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/lvgl/scripts/release/release.py')
-rwxr-xr-xsrc/libs/lvgl/scripts/release/release.py173
1 files changed, 173 insertions, 0 deletions
diff --git a/src/libs/lvgl/scripts/release/release.py b/src/libs/lvgl/scripts/release/release.py
new file mode 100755
index 00000000..1e6037df
--- /dev/null
+++ b/src/libs/lvgl/scripts/release/release.py
@@ -0,0 +1,173 @@
+#!/usr/bin/env python
+
+import os.path
+from os import path
+from datetime import date
+import sys
+import com
+import re
+
+def update_release_branch(release_br, master_br = "master"):
+ com.cmd("git checkout " + release_br)
+ com.cmd("git pull origin " + release_br)
+ com.cmd("git merge "+ master_br +" -X ours");
+ com.push("origin " + release_br);
+ com.cmd("git checkout master");
+
+def lvgl_release(ver):
+ print("Release lvgl")
+
+ ver_str = com.ver_format(ver)
+ release_br = "release/v" + str(ver[0])
+
+ os.chdir("./lvgl")
+ com.define_set("./lvgl.h", "LVGL_VERSION_INFO", '\"\"')
+
+ # Run some scripts
+ os.chdir("./scripts")
+ com.cmd("./code-format.sh")
+ com.cmd("./lv_conf_checker.py")
+ com.cmd("doxygen")
+ os.chdir("../")
+
+ com.update_version(ver)
+
+ #update CHANGLELOG
+ new_content = ""
+ f = open("./CHANGELOG.md", "r")
+
+ release_note = ""
+ note_state = 0
+ for i in f.read().splitlines():
+ if note_state == 0:
+ r = re.search(r'^## ' + ver_str, i)
+ if r:
+ i = i.replace("planned on ", "")
+ note_state+=1
+
+ elif note_state == 1:
+ r = re.search(r'^## ', i)
+ if r:
+ note_state+=1
+ else:
+ release_note += i + '\n'
+
+ new_content += i + '\n'
+
+ f.close()
+
+ f = open("./CHANGELOG.md", "w")
+ f.write(new_content)
+ f.close()
+
+ com.cmd('git commit -am "Release ' + ver_str + '"')
+
+ com.cmd('git checkout dev')
+ com.cmd("git merge master -X ours")
+ com.cmd("git add .")
+ com.cmd("git commit -am 'Merge master'", False)
+ com.push('origin dev')
+ com.cmd('git checkout master')
+ com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ")
+ com.push('origin master')
+ com.push('origin --tags')
+
+ update_release_branch(release_br)
+
+ os.chdir("../")
+
+ return release_note
+
+def lv_examples_release(ver):
+ print("Release lv_examples")
+
+ os.chdir("./lv_examples")
+ release_br = "release/v" + str(ver[0])
+ ver_str = com.ver_format(ver)
+
+ com.update_version(ver)
+
+ com.cmd("sed -i -r 's/LV_VERSION_CHECK\([0-9]+, *[0-9]+, *[0-9]+\)/"+ "LV_VERSION_CHECK\(" + str(ver[0]) + ", " + str(ver[1]) + ", " + str(ver[2]) + ")/' lv_examples.h")
+
+ com.cmd('git commit -am "Release ' + ver_str + '"')
+ com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ")
+ com.push('origin master')
+ com.push('origin --tags')
+
+ update_release_branch(release_br)
+
+ os.chdir("../")
+
+def lv_drivers_release(ver):
+ print("Release lv_drivers")
+
+ os.chdir("./lv_drivers")
+ release_br = "release/v" + str(ver[0])
+ ver_str = com.ver_format(ver)
+
+ com.update_version(ver)
+
+ com.cmd('git commit -am "Release ' + ver_str + '"')
+ com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ")
+ com.push('origin master')
+ com.push('origin --tags')
+
+ update_release_branch(release_br)
+
+ os.chdir("../")
+
+def docs_release(ver):
+ print("Release docs")
+
+ os.chdir("./docs")
+ release_br = "release/v" + str(ver[0])
+ ver_str = com.ver_format(ver)
+
+ com.cmd("git co latest --")
+ com.cmd("rm -rf xml");
+ com.cmd("cp -r ../lvgl/docs/api_doc/xml .");
+ com.cmd("git add xml");
+
+ com.update_version(ver)
+
+ com.cmd('git commit -am "Release ' + ver_str + '"')
+ com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ")
+ com.push('origin master')
+ com.push('origin --tags')
+
+ update_release_branch(release_br, "latest")
+
+ os.chdir("../")
+
+def blog_release(ver, release_note):
+
+ os.chdir("./blog/_posts")
+
+ ver_str = com.ver_format(ver)
+
+ post = "---\nlayout: post\ntitle: " + ver_str + " is released\nauthor: \"kisvegabor\"\ncover: /assets/release_cover.png\n---\n\n"
+ post += release_note
+
+ today = date.today()
+ d = today.strftime("%Y-%m-%d")
+
+ f = open(d + "-release_" + ver_str + ".md", "w")
+ f.write(post)
+ f.close()
+
+ com.cmd("git add .")
+ com.cmd("git commit -am 'Add " + ver_str + " release post'")
+ com.push('origin master')
+
+ os.chdir("../../")
+
+def make():
+ ver = com.get_lvgl_version("master")
+ release_note = lvgl_release(ver)
+ lv_examples_release(ver)
+ lv_drivers_release(ver)
+ docs_release(ver)
+ blog_release(ver, release_note)
+
+if __name__ == '__main__':
+ make()