[CI] Add a helper script to aid Maven release (#7470)
* [CI] Add a helper script to aid Maven release * Move script to dev/ [skip ci] * Update command [skip ci]
This commit is contained in:
parent
0552ca8021
commit
0c67685e43
83
dev/prepare_jvm_release.py
Normal file
83
dev/prepare_jvm_release.py
Normal file
@ -0,0 +1,83 @@
|
||||
import os
|
||||
import sys
|
||||
import errno
|
||||
import subprocess
|
||||
import glob
|
||||
import shutil
|
||||
from contextlib import contextmanager
|
||||
|
||||
def normpath(path):
|
||||
"""Normalize UNIX path to a native path."""
|
||||
normalized = os.path.join(*path.split("/"))
|
||||
if os.path.isabs(path):
|
||||
return os.path.abspath("/") + normalized
|
||||
else:
|
||||
return normalized
|
||||
|
||||
def cp(source, target):
|
||||
source = normpath(source)
|
||||
target = normpath(target)
|
||||
print("cp {0} {1}".format(source, target))
|
||||
shutil.copy(source, target)
|
||||
|
||||
def maybe_makedirs(path):
|
||||
path = normpath(path)
|
||||
print("mkdir -p " + path)
|
||||
try:
|
||||
os.makedirs(path)
|
||||
except OSError as e:
|
||||
if e.errno != errno.EEXIST:
|
||||
raise
|
||||
|
||||
@contextmanager
|
||||
def cd(path):
|
||||
path = normpath(path)
|
||||
cwd = os.getcwd()
|
||||
os.chdir(path)
|
||||
print("cd " + path)
|
||||
try:
|
||||
yield path
|
||||
finally:
|
||||
os.chdir(cwd)
|
||||
|
||||
def run(command, **kwargs):
|
||||
print(command)
|
||||
subprocess.check_call(command, shell=True, **kwargs)
|
||||
|
||||
def main():
|
||||
with cd("jvm-packages/"):
|
||||
print("====copying pure-Python tracker====")
|
||||
for use_cuda in [True, False]:
|
||||
xgboost4j = "xgboost4j-gpu" if use_cuda else "xgboost4j"
|
||||
cp("../python-package/xgboost/tracker.py", f"{xgboost4j}/src/main/resources")
|
||||
|
||||
print("====copying resources for testing====")
|
||||
with cd("../demo/CLI/regression"):
|
||||
run(f"{sys.executable} mapfeat.py")
|
||||
run(f"{sys.executable} mknfold.py machine.txt 1")
|
||||
for use_cuda in [True, False]:
|
||||
xgboost4j = "xgboost4j-gpu" if use_cuda else "xgboost4j"
|
||||
xgboost4j_spark = "xgboost4j-spark-gpu" if use_cuda else "xgboost4j-spark"
|
||||
maybe_makedirs(f"{xgboost4j}/src/test/resources")
|
||||
maybe_makedirs(f"{xgboost4j_spark}/src/test/resources")
|
||||
for file in glob.glob("../demo/data/agaricus.*"):
|
||||
cp(file, f"{xgboost4j}/src/test/resources")
|
||||
cp(file, f"{xgboost4j_spark}/src/test/resources")
|
||||
for file in glob.glob("../demo/CLI/regression/machine.txt.t*"):
|
||||
cp(file, f"{xgboost4j_spark}/src/test/resources")
|
||||
|
||||
print("====Creating directories to hold native binaries====")
|
||||
for os, arch in [("linux", "x86_64"), ("windows", "x86_64"), ("macos", "x86_64")]:
|
||||
output_dir = f"xgboost4j/src/main/resources/lib/{os}/{arch}"
|
||||
maybe_makedirs(output_dir)
|
||||
for os, arch in [("linux", "x86_64")]:
|
||||
output_dir = f"xgboost4j-gpu/src/main/resources/lib/{os}/{arch}"
|
||||
maybe_makedirs(output_dir)
|
||||
print("====Next Steps====")
|
||||
print("1. Obtain Linux and Windows binaries from the CI server")
|
||||
print("2. Put them in xgboost4j(-gpu)/src/main/resources/lib/[os]/[arch]")
|
||||
print("3. Now on a Mac machine, run:")
|
||||
print(" GPG_TTY=$(tty) mvn deploy -Prelease -DskipTests")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
x
Reference in New Issue
Block a user