1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-08-08 18:02:05 +03:00

getdeps: support GETDEPS_WGET_ARGS in wget version, support skipping lfs/upload steps

Summary:
X-link: https://github.com/facebookincubator/katran/pull/229

X-link: https://github.com/facebookexperimental/edencommon/pull/18

X-link: https://github.com/facebook/sapling/pull/878

X-link: https://github.com/facebook/openr/pull/154

X-link: https://github.com/facebook/folly/pull/2177

X-link: https://github.com/facebookincubator/zstrong/pull/748

I found it useful to be able to set `GETDEPS_WGET_ARGS` to change some of the flags to `wget` while it's in that fetch mode :)
I also need to skip the lfs upload part in my environment

Reviewed By: mackorone

Differential Revision: D56263907

fbshipit-source-id: ae45c31ebb10123e0358544d294fe2f2979dd59a
This commit is contained in:
Cody Ohlsen
2024-04-17 17:24:31 -07:00
committed by Facebook GitHub Bot
parent b84f146bfc
commit 220ffee5db
2 changed files with 31 additions and 3 deletions

View File

@@ -561,6 +561,10 @@ class BuildCmd(ProjectCmdBase):
for m in projects: for m in projects:
fetcher = loader.create_fetcher(m) fetcher = loader.create_fetcher(m)
if args.build_skip_lfs_download and hasattr(fetcher, "skip_lfs_download"):
print("skipping lfs download for %s" % m.name)
fetcher.skip_lfs_download()
if isinstance(fetcher, SystemPackageFetcher): if isinstance(fetcher, SystemPackageFetcher):
# We are guaranteed that if the fetcher is set to # We are guaranteed that if the fetcher is set to
# SystemPackageFetcher then this item is completely # SystemPackageFetcher then this item is completely
@@ -652,7 +656,11 @@ class BuildCmd(ProjectCmdBase):
# Only populate the cache from continuous build runs, and # Only populate the cache from continuous build runs, and
# only if we have a built_marker. # only if we have a built_marker.
if args.schedule_type == "continuous" and has_built_marker: if (
not args.skip_upload
and args.schedule_type == "continuous"
and has_built_marker
):
cached_project.upload() cached_project.upload()
elif args.verbose: elif args.verbose:
print("found good %s" % built_marker) print("found good %s" % built_marker)
@@ -1322,11 +1330,28 @@ def parse_args():
action="store_true", action="store_true",
default=False, default=False,
) )
add_common_arg(
"-su",
"--skip-upload",
help="skip upload steps",
action="store_true",
default=False,
)
add_common_arg( add_common_arg(
"--lfs-path", "--lfs-path",
help="Provide a parent directory for lfs when fbsource is unavailable", help="Provide a parent directory for lfs when fbsource is unavailable",
default=None, default=None,
) )
add_common_arg(
"--build-skip-lfs-download",
action="store_true",
default=False,
help=(
"Download from the URL, rather than LFS. This is useful "
"in cases where the upstream project has uploaded a new "
"version of the archive with a different hash"
),
)
ap = argparse.ArgumentParser( ap = argparse.ArgumentParser(
description="Get and build dependencies and projects", parents=[common_args] description="Get and build dependencies and projects", parents=[common_args]

View File

@@ -683,15 +683,18 @@ def download_url_to_file_with_progress(url: str, file_name) -> None:
start = time.time() start = time.time()
try: try:
if os.environ.get("GETDEPS_USE_WGET") is not None: if os.environ.get("GETDEPS_USE_WGET") is not None:
subprocess.run( procargs = (
[ [
"wget", "wget",
]
+ os.environ.get("GETDEPS_WGET_ARGS", "").split()
+ [
"-O", "-O",
file_name, file_name,
url, url,
] ]
) )
subprocess.run(procargs, capture_output=True)
headers = None headers = None
elif os.environ.get("GETDEPS_USE_LIBCURL") is not None: elif os.environ.get("GETDEPS_USE_LIBCURL") is not None: