CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
44 lines
1.4 KiB
Python
Executable File
44 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
"""Compile source on a range of commits
|
|
|
|
Usage:
|
|
check-commits <start> <source>
|
|
"""
|
|
|
|
import docopt, os, sys, tempfile
|
|
from subprocess import check_call, check_output, run
|
|
|
|
args = docopt.docopt(__doc__)
|
|
start = args.get('<start>')
|
|
source = args.get('<source>')
|
|
|
|
cwd = os.getcwd()
|
|
|
|
with tempfile.TemporaryDirectory() as work_dir:
|
|
check_call(['git', 'clone', 'https://github.com/fmtlib/fmt.git'],
|
|
cwd=work_dir)
|
|
repo_dir = os.path.join(work_dir, 'fmt')
|
|
commits = check_output(
|
|
['git', 'rev-list', f'{start}..HEAD', '--abbrev-commit',
|
|
'--', 'include', 'src'],
|
|
text=True, cwd=repo_dir).rstrip().split('\n')
|
|
commits.reverse()
|
|
print('Time\tCommit')
|
|
for commit in commits:
|
|
check_call(['git', '-c', 'advice.detachedHead=false', 'checkout', commit],
|
|
cwd=repo_dir)
|
|
returncode = run(
|
|
['c++', '-std=c++11', '-O3', '-DNDEBUG', '-I', 'include',
|
|
'src/format.cc', os.path.join(cwd, source)], cwd=repo_dir).returncode
|
|
if returncode != 0:
|
|
continue
|
|
times = []
|
|
for i in range(5):
|
|
output = check_output([os.path.join(repo_dir, 'a.out')], text=True)
|
|
times.append(float(output))
|
|
message = check_output(['git', 'log', '-1', '--pretty=format:%s', commit],
|
|
cwd=repo_dir, text=True)
|
|
print(f'{min(times)}\t{commit} {message[:40]}')
|
|
sys.stdout.flush()
|