-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update google benchmark to 1.8.3. (#19734)
Update google benchmark to 1.8.3. Update deps_update_and_upload.py script to make it easier to use.
- Loading branch information
Showing
4 changed files
with
98 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,56 +1,109 @@ | ||
# in case deps.txt is updated, run this file to update and upload the dependencies so that CI can use them. | ||
# Before running the script, increase the version number found at: | ||
# If deps.txt is updated, run this file to update and upload the dependencies so that CI can use them. | ||
# | ||
# Before running the script, find the latest version number at: | ||
# https://aiinfra.visualstudio.com/Lotus/_artifacts/feed/Lotus/UPack/onnxruntime_build_dependencies/versions | ||
# Increment it to obtain a new version number to use. | ||
# | ||
# Run without --do-upload once to verify downloading. Use --do-upload when you are ready to publish. | ||
# python cmake/deps_update_and_upload.py --root-path C:/temp/onnxruntime_deps --version 1.0.82 --do-upload | ||
# update version number in tools\ci_build\github\azure-pipelines\templates\download-deps.yml | ||
# E.g.: | ||
# python cmake/deps_update_and_upload.py --root-path C:/temp/onnxruntime_deps --version 1.0.82 | ||
# # check contents of C:/temp/onnxruntime_deps | ||
# python cmake/deps_update_and_upload.py --root-path C:/temp/onnxruntime_deps --version 1.0.82 --no-download --do-upload | ||
# | ||
# Next, update the version number in tools/ci_build/github/azure-pipelines/templates/download-deps.yml. | ||
|
||
import argparse | ||
import contextlib | ||
import pathlib | ||
import re | ||
import subprocess | ||
import os | ||
import argparse | ||
import tempfile | ||
|
||
script_dir = pathlib.Path(__file__).parent | ||
|
||
parser = argparse.ArgumentParser(description="Update dependencies and publish to Azure Artifacts") | ||
parser.add_argument( | ||
"--root-path", type=str, default=tempfile.gettempdir(), help="Target root path for downloaded files" | ||
"--root-path", | ||
type=pathlib.Path, | ||
help="Target root path for downloaded files. If not provided, a temporary directory is used.", | ||
) | ||
parser.add_argument( | ||
"--version", | ||
type=str, | ||
help="Package version to publish", | ||
) | ||
parser.add_argument( | ||
"--do-upload", | ||
action="store_true", | ||
dest="upload", | ||
help="Upload the package to Azure Artifacts", | ||
) | ||
parser.add_argument( | ||
"--no-download", | ||
action="store_false", | ||
dest="download", | ||
help="Skip downloading the dependency files. " | ||
"Use with '--do-upload' and '--root-path' to upload the package from existing dependency files.", | ||
) | ||
parser.add_argument("--version", type=str, default="1.0.82", help="Package version to publish") | ||
parser.add_argument("--do-upload", action="store_true", help="Upload the package to Azure Artifacts") | ||
args = parser.parse_args() | ||
|
||
with open("cmake/deps.txt") as file: | ||
if args.upload: | ||
assert args.version is not None, "'--version' must be specified if uploading." | ||
|
||
if args.upload != args.download: | ||
assert args.root_path is not None, "'--root-path' must be specified if only downloading or uploading." | ||
|
||
deps_path = script_dir / "deps.txt" | ||
with open(deps_path) as file: | ||
text = file.read() | ||
|
||
lines = [line for line in text.split("\n") if not line.startswith("#") and ";" in line] | ||
|
||
root_path = args.root_path | ||
|
||
for line in lines: | ||
url = re.sub("^[^;]+?;https://([^;]+?);.*", r"https://\1", line) | ||
filename = re.sub("^[^;]+?;https://([^;]+?);.*", r"\1", line) | ||
full_path = os.path.join(root_path, filename) | ||
subprocess.run(["curl", "-sSL", "--create-dirs", "-o", full_path, url]) # noqa: PLW1510 | ||
|
||
package_name = "onnxruntime_build_dependencies" | ||
version = args.version | ||
|
||
# Check if the user is logged in to Azure | ||
result = subprocess.run("az account show", shell=True, capture_output=True, text=True) # noqa: PLW1510 | ||
if "No subscriptions found" in result.stderr: | ||
# Prompt the user to log in to Azure | ||
print("You are not logged in to Azure. Please log in to continue.") | ||
subprocess.run("az login", shell=True) # noqa: PLW1510 | ||
|
||
# Publish the package to Azure Artifacts if --no-upload is not specified | ||
|
||
cmd = f'az artifacts universal publish --organization https://dev.azure.com/onnxruntime --feed onnxruntime --name {package_name} --version {version} --description "onnxruntime build time dependencies" --path {root_path}' | ||
if args.do_upload: | ||
subprocess.run(cmd, shell=True) # noqa: PLW1510 | ||
else: | ||
print("would have run: " + cmd) | ||
|
||
cmd = f'az artifacts universal publish --organization https://dev.azure.com/aiinfra --feed Lotus --name {package_name} --version {version} --description "onnxruntime build time dependencies" --path {root_path}' | ||
if args.do_upload: | ||
subprocess.run(cmd, shell=True) # noqa: PLW1510 | ||
else: | ||
print("would have run: " + cmd) | ||
with contextlib.ExitStack() as context_stack: | ||
if args.root_path is not None: | ||
root_path = args.root_path.resolve() | ||
root_path.mkdir(parents=True, exist_ok=True) | ||
else: | ||
temp_dir_name = context_stack.enter_context(tempfile.TemporaryDirectory()) | ||
root_path = pathlib.Path(temp_dir_name) | ||
|
||
if args.download: | ||
print(f"Downloading dependencies to directory: {root_path}") | ||
|
||
dep_pattern = re.compile(r"^[^;]+;https://([^;]+);.*$") | ||
|
||
for line in lines: | ||
match = dep_pattern.fullmatch(line) | ||
if match is None: | ||
continue | ||
|
||
dep_path = match[1] | ||
url = f"https://{dep_path}" | ||
full_path = root_path / dep_path | ||
|
||
subprocess.run(["curl", "-sSL", "--create-dirs", "-o", str(full_path), url], check=True) | ||
|
||
package_name = "onnxruntime_build_dependencies" | ||
version = args.version if args.version is not None else "VERSION_PLACEHOLDER" | ||
|
||
if args.upload: | ||
# Check if the user is logged in to Azure | ||
result = subprocess.run("az account show", shell=True, capture_output=True, text=True, check=False) | ||
if "No subscriptions found" in result.stderr: | ||
# Prompt the user to log in to Azure | ||
print("You are not logged in to Azure. Please log in to continue.") | ||
subprocess.run("az login", shell=True, check=True) | ||
|
||
# Publish the package to Azure Artifacts if --do-upload is specified | ||
|
||
cmd = f'az artifacts universal publish --organization https://dev.azure.com/onnxruntime --feed onnxruntime --name {package_name} --version {version} --description "onnxruntime build time dependencies" --path {root_path}' | ||
if args.upload: | ||
subprocess.run(cmd, shell=True, check=True) | ||
else: | ||
print("would have run: " + cmd) | ||
|
||
cmd = f'az artifacts universal publish --organization https://dev.azure.com/aiinfra --feed Lotus --name {package_name} --version {version} --description "onnxruntime build time dependencies" --path {root_path}' | ||
if args.upload: | ||
subprocess.run(cmd, shell=True, check=True) | ||
else: | ||
print("would have run: " + cmd) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters