[webkit-changes] [WebKit/WebKit] 0ac614: Run-benchmark should be able to checkout out a fix...

dewei-zhu noreply at github.com
Fri Sep 2 18:43:22 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0ac614b6822ca9eccec5f40b7d00bf746f1f08a9
      https://github.com/WebKit/WebKit/commit/0ac614b6822ca9eccec5f40b7d00bf746f1f08a9
  Author: Dewei Zhu <dewei_zhu at apple.com>
  Date:   2022-09-02 (Fri, 02 Sep 2022)

  Changed paths:
    M Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py
    M Tools/Scripts/webkitpy/benchmark_runner/data/plans/jetstream2.1.plan
    A Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.2.1.plan
    A Tools/Scripts/webkitpy/benchmark_runner/github_downloader.py
    A Tools/Scripts/webkitpy/benchmark_runner/plan_file_optimizer.py

  Log Message:
  -----------
  Run-benchmark should be able to checkout out a fixed version of benchmark from Git/GitHub
https://bugs.webkit.org/show_bug.cgi?id=244704
rdar://99465558

Reviewed by Stephanie Lewis.

Add 'local_git_archive' and 'github_source' schema to plan file so that we can download
a subdirectory from a Git repository or from GitHub.
Add 'github_subtree' schema to plan file as a cached and compressed response from GitHub
tree API. This can avoid hitting rate limit in GitHub API.
Write a module to support downloading subdirectories from GitHub.
Fix JetStream2.1 plan file to checkout the right version of JetStream.
Added MotionMark1.2.1 plan file.

* Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py: Added support for 'local_git_archive'
and 'github_source'.
(BenchmarkBuilder):
(BenchmarkBuilder.__enter__):
(BenchmarkBuilder._download_from_github):
(BenchmarkBuilder._local_git_archive_eligible):
(BenchmarkBuilder._prepare_content_from_local_git_archive):
* Tools/Scripts/webkitpy/benchmark_runner/data/plans/jetstream2.1.plan:
* Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.2.1.plan: Added.
* Tools/Scripts/webkitpy/benchmark_runner/github_downloader.py: Added this module for downloading a
subdirectory from GitHub using GitHub API and GitHub raw content endpoint.
(GithubDownloadTask):
(GithubDownloadTask.__init__):
(GithubDownloadTask.execute):
(GithubDownloadTask.subtree):
(retry_on_exception):
(retry_on_exception.decorator):
(retry_on_exception.decorator.wrapped):
(GithubDownloader):
(GithubDownloader.__init__):
(GithubDownloader.is_directory):
(GithubDownloader.is_file):
(GithubDownloader.is_symlink):
(GithubDownloader.session):
(GithubDownloader.download_content):
(GithubDownloader.subtree_for_path_with_commit):
(GithubDownloader._download_subtree_multiprocessing):
(GithubDownloader.walk):
(GithubDownloader._walk):
(GithubDownloader._subtree):
(GithubDownloader._commit):
(GithubDownloader._raw_content_url):
(GithubDownloader._download_raw_content):
(GithubDownloader._resolve_symlink):
(GithubDownloader._request):
* Tools/Scripts/webkitpy/benchmark_runner/plan_file_optimizer.py: Added this script
to cache the response from GitHub tree API for a given commit of a benchmark. This
will avoid hit any GitHub API, thus avoid hitting GitHub API rate limit.
(optimize_plan_file):
(optimize_plan_file.drop_keys):
(main):

Canonical link: https://commits.webkit.org/254124@main




More information about the webkit-changes mailing list