This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch release-verify
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git

commit 6250fd08d738cfcab0d84eff4fc29164bd48ca80
Author: Xuanwo <[email protected]>
AuthorDate: Sun Oct 8 13:25:21 2023 +0800

    docs: Add verify script
    
    Signed-off-by: Xuanwo <[email protected]>
---
 scripts/README.md                       |  6 ++++
 scripts/verify.py                       | 63 +++++++++++++++++++++++++++++++++
 website/community/committers/release.md |  8 +++++
 3 files changed, 77 insertions(+)

diff --git a/scripts/README.md b/scripts/README.md
index 07c71dcff..57c9c2df7 100644
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -53,3 +53,9 @@ Please decide how far you trust this user to correctly verify 
other users' keys
 Your decision? 5 #choose 5
 Do you really want to set this key to ultimate trust? (y/N) y  #choose y
 ```
+
+## Verify
+
+```shell
+./scripts/verify.py
+```
diff --git a/scripts/verify.py b/scripts/verify.py
new file mode 100755
index 000000000..72dc84521
--- /dev/null
+++ b/scripts/verify.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python3
+
+import subprocess
+import sys
+import os
+
+BASE_DIR = os.getcwd()
+
+
+def check_rust():
+    try:
+        subprocess.run(['cargo', '--version'], check=True)
+        return True
+    except FileNotFoundError:
+        return False
+    except Exception as e:
+        raise Exception("Check rust met unexpected error", e)
+
+
+def check_java():
+    try:
+        subprocess.run(['java', '--version'], check=True)
+        return True
+    except FileNotFoundError:
+        return False
+    except Exception as e:
+        raise Exception("Check java met unexpected error", e)
+
+
+def build_core():
+    print("Start building opendal core")
+
+    subprocess.run(['cargo', 'build'], check=True)
+
+
+def build_java_binding():
+    print("Start building opendal java binding")
+
+    # change to java binding directory
+    os.chdir('bindings/java')
+
+    subprocess.run(['./mvnw', 'clean', 'install', '-DskipTests=true'], 
check=True)
+
+    # change back to base directory
+    os.chdir(BASE_DIR)
+
+
+def main():
+    if not check_rust():
+        print("Cargo is not found, please check if rust development has been 
setup correctly")
+        print("Visit https://www.rust-lang.org/tools/install for more 
information")
+        sys.exit(1)
+
+    build_core()
+
+    if check_java():
+        build_java_binding()
+    else:
+        print("Java is not found, skipped building java binding")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/website/community/committers/release.md 
b/website/community/committers/release.md
index 04aa57564..05d613677 100644
--- a/website/community/committers/release.md
+++ b/website/community/committers/release.md
@@ -304,6 +304,10 @@ 
https://github.com/apache/incubator-opendal/tree/main/scripts
 To compile from source, please refer to:
 https://github.com/apache/incubator-opendal/blob/main/CONTRIBUTING.md
 
+Here is python script in release to help you verify the release candidate:
+
+./scripts/verify.py
+
 Thanks
 
 ${name}
@@ -415,6 +419,10 @@ 
https://github.com/apache/incubator-opendal/tree/main/scripts
 To compile from source, please refer to:
 https://github.com/apache/incubator-opendal/blob/main/CONTRIBUTING.md
 
+Here is python script in release to help you verify the release candidate:
+
+./scripts/verify.py
+
 Thanks
 
 ${name}

Reply via email to