Mercurial > repos > public > sbplib_julia
annotate benchmark/benchmark_utils.jl @ 2015:5c2448d6a201 feature/grids/geometry_functions tip
Structure tests a bit more
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 09 May 2025 15:57:38 +0200 |
parents | 9d708f3300d5 |
children |
rev | line source |
---|---|
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
1 import PkgBenchmark |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
2 import Markdown |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
3 import Mustache |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
4 import Dates |
1172 | 5 |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
6 import Diffinitive |
1172 | 7 |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
8 const diffinitive_root = splitpath(pathof(Diffinitive))[1:end-2] |> joinpath |
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
9 const results_dir = mkpath(joinpath(diffinitive_root, "benchmark/results")) |
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
10 const template_path = joinpath(diffinitive_root, "benchmark/result.tmpl") |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
11 |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
12 """ |
1881
e1d64f4110bd
Fix typos in benchmark_utils.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1726
diff
changeset
|
13 main(;rev=nothing, target=nothing, baseline=nothing , kwargs...) |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
14 |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
15 Calls `run_benchmark(args...; kwargs...)` and writes the results as an HTML |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
16 file in `benchmark/results`. |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
17 |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
18 * If `rev` is set, the benchmarks are run for the given mercurial revision. |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
19 * If only `baseline` is set, the current working directory is compared with |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
20 the revision given in `baseline`. |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
21 * If both `target` and `baseline` is set those revision are compared. |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
22 |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
23 For control over what happens to the benchmark result datastructure see the |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
24 different methods of [`run_benchmark`](@ref) |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
25 """ |
1536
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
26 function main(;rev=nothing, target=nothing, baseline=nothing, name=nothing, kwargs...) |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
27 if !isnothing(rev) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
28 r = run_benchmark(rev; kwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
29 elseif !isnothing(baseline) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
30 if isnothing(target) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
31 r = compare_benchmarks(baseline; kwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
32 else |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
33 r = compare_benchmarks(target, baseline; kwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
34 end |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
35 else |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
36 # Neither rev, or baseline were set => Run on current working directory. |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
37 r = run_benchmark(;kwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
38 end |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
39 |
1536
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
40 file_path = write_result_html(r; name) |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
41 open_in_default_browser(file_path) |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
42 end |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
43 |
1180 | 44 |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
45 """ |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
46 run_benchmark() |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
47 |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
48 Run the benchmark suite for the current working directory and return a |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
49 `PkgBenchmark.BenchmarkResult` |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
50 """ |
1197
5e20c0815e07
Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents:
1192
diff
changeset
|
51 function run_benchmark(;kwargs...) |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
52 r = PkgBenchmark.benchmarkpkg(Diffinitive; kwargs...) |
1176
27ee001df3e5
Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents:
1175
diff
changeset
|
53 |
1315
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
54 rev = hg_rev() # Should be changed to hg_id() when the html can handle it. |
1181
f49bac53e72b
Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents:
1180
diff
changeset
|
55 |
f49bac53e72b
Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents:
1180
diff
changeset
|
56 return add_rev_info(r, rev) |
f49bac53e72b
Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents:
1180
diff
changeset
|
57 end |
1176
27ee001df3e5
Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents:
1175
diff
changeset
|
58 |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
59 """ |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
60 run_benchmark(rev) |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
61 |
1305
7894d29ea8fa
Improve docs for run_benchmark(rev)
Jonatan Werpers <jonatan@werpers.com>
parents:
1303
diff
changeset
|
62 Updates the repository to the given revison and runs the benchmark suite. When |
7894d29ea8fa
Improve docs for run_benchmark(rev)
Jonatan Werpers <jonatan@werpers.com>
parents:
1303
diff
changeset
|
63 done, reverts the repository to the original state. `rev` can be any |
7894d29ea8fa
Improve docs for run_benchmark(rev)
Jonatan Werpers <jonatan@werpers.com>
parents:
1303
diff
changeset
|
64 identifier compatible with `hg update`. |
1185
6fc0adcd5b97
Add info about supported rev identifiers
Jonatan Werpers <jonatan@werpers.com>
parents:
1184
diff
changeset
|
65 |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
66 Returns a `PkgBenchmark.BenchmarkResult` |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
67 """ |
1197
5e20c0815e07
Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents:
1192
diff
changeset
|
68 function run_benchmark(rev; kwargs...) |
1317
7110851b9c87
Change run_benchmark(rev) to use hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1315
diff
changeset
|
69 return hg_at_revision(rev) do |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
70 run_benchmark(; kwargs...) |
1317
7110851b9c87
Change run_benchmark(rev) to use hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1315
diff
changeset
|
71 end |
1181
f49bac53e72b
Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents:
1180
diff
changeset
|
72 end |
f49bac53e72b
Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents:
1180
diff
changeset
|
73 |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
74 """ |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
75 compare_benchmarks(target, baseline, f=minimum; judgekwargs=Dict()) |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
76 |
1318
e883085a091a
Improve docstring for run_benchmark(target,baseline)
Jonatan Werpers <jonatan@werpers.com>
parents:
1317
diff
changeset
|
77 Runs the benchmark at revisions `target` and `baseline` and compares them |
e883085a091a
Improve docstring for run_benchmark(target,baseline)
Jonatan Werpers <jonatan@werpers.com>
parents:
1317
diff
changeset
|
78 using `PkgBenchmark.judge`. `f` is the function used to compare. `judgekwargs` |
e883085a091a
Improve docstring for run_benchmark(target,baseline)
Jonatan Werpers <jonatan@werpers.com>
parents:
1317
diff
changeset
|
79 are keyword arguments passed to `judge`. |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
80 |
1185
6fc0adcd5b97
Add info about supported rev identifiers
Jonatan Werpers <jonatan@werpers.com>
parents:
1184
diff
changeset
|
81 `target` and `baseline` can be any identifier compatible with `hg update`. |
6fc0adcd5b97
Add info about supported rev identifiers
Jonatan Werpers <jonatan@werpers.com>
parents:
1184
diff
changeset
|
82 |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
83 Returns a `PkgBenchmark.BenchmarkJudgement` |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
84 """ |
1896
9d708f3300d5
Fix bug in benchmark_utils.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1881
diff
changeset
|
85 function compare_benchmarks(target, baseline; f=minimum, judgekwargs=Dict(), kwargs...) |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
86 t = run_benchmark(target; kwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
87 b = run_benchmark(baseline; kwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
88 |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
89 return PkgBenchmark.judge(t,b,f; judgekwargs...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
90 end |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
91 |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
92 """ |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
93 compare_benchmarks(baseline, ...) |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
94 |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
95 Compare the results at the current working directory with the revision |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
96 specified in `baseline`. |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
97 |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
98 Accepts the same arguments as the two revision version. |
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
99 """ |
1896
9d708f3300d5
Fix bug in benchmark_utils.jl
Jonatan Werpers <jonatan@werpers.com>
parents:
1881
diff
changeset
|
100 function compare_benchmarks(baseline; f=minimum, judgekwargs=Dict(), kwargs...) |
1197
5e20c0815e07
Pass kwargs from main() and run_benchmarks() to benchmarkpkg()
Jonatan Werpers <jonatan@werpers.com>
parents:
1192
diff
changeset
|
101 t = run_benchmark(;kwargs...) |
1320
6ae2ec4cef5a
Rename functions for comparing benchmarks. Refactor their code. Allow comparing the current working directory
Jonatan Werpers <jonatan@werpers.com>
parents:
1319
diff
changeset
|
102 b = run_benchmark(baseline; kwargs...) |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
103 |
1188
d2e73d7b417d
Fix bug in runbenchmark(t,b)
Jonatan Werpers <jonatan@werpers.com>
parents:
1187
diff
changeset
|
104 return PkgBenchmark.judge(t,b,f; judgekwargs...) |
1184
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
105 end |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
106 |
c06d8eb8b0f0
Add docstrings, comparing version of run_benchmark, and allow main to call any version of run_benchmark
Jonatan Werpers <jonatan@werpers.com>
parents:
1183
diff
changeset
|
107 |
1181
f49bac53e72b
Factor out function for adding mercurial rev info
Jonatan Werpers <jonatan@werpers.com>
parents:
1180
diff
changeset
|
108 function add_rev_info(benchmarkresult, rev) |
1315
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
109 if endswith(rev,"+") |
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
110 revstr = "+$rev" # Workaround for the bad presentation of BenchmarkResults. |
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
111 else |
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
112 revstr = rev |
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
113 end |
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
114 |
1176
27ee001df3e5
Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents:
1175
diff
changeset
|
115 return PkgBenchmark.BenchmarkResults( |
1183 | 116 benchmarkresult.name, |
1315
0551fd71682f
Workaround for the display of revision in html
Jonatan Werpers <jonatan@werpers.com>
parents:
1313
diff
changeset
|
117 revstr, |
1183 | 118 benchmarkresult.benchmarkgroup, |
119 benchmarkresult.date, | |
120 benchmarkresult.julia_commit, | |
121 benchmarkresult.vinfo, | |
122 benchmarkresult.benchmarkconfig, | |
1176
27ee001df3e5
Make run_benchmark include hg info
Jonatan Werpers <jonatan@werpers.com>
parents:
1175
diff
changeset
|
123 ) |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
124 end |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
125 |
1190 | 126 |
1177
68445e87fa93
Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents:
1176
diff
changeset
|
127 function write_result_html(io, r) |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
128 iobuffer = IOBuffer() |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
129 PkgBenchmark.export_markdown(iobuffer, r) |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
130 |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
131 parsed_md = Markdown.parse(String(take!(iobuffer))) |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
132 content = Markdown.html(parsed_md) |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
133 |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
134 template = Mustache.load(template_path) |
1177
68445e87fa93
Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents:
1176
diff
changeset
|
135 |
68445e87fa93
Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents:
1176
diff
changeset
|
136 dt = Dates.format(PkgBenchmark.date(r), "yyyy-mm-dd HH:MM:SS") |
68445e87fa93
Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents:
1176
diff
changeset
|
137 Mustache.render(io, template, Dict("title"=>dt, "content"=>content)) |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
138 end |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
139 |
1536
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
140 function write_result_html(r; name=nothing) |
1179
d6038ceba882
Better file names för results
Jonatan Werpers <jonatan@werpers.com>
parents:
1178
diff
changeset
|
141 dt = Dates.format(PkgBenchmark.date(r), "yyyy-mm-dd HHMMSS") |
1536
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
142 |
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
143 if isnothing(name) |
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
144 file_path = joinpath(results_dir, dt*".html") |
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
145 else |
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
146 file_path = joinpath(results_dir, dt*" "*name*".html") |
5193e6cd6c6a
Add optional name parameter for benchmark helper. Update benchmark manifest
Jonatan Werpers <jonatan@werpers.com>
parents:
1321
diff
changeset
|
147 end |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
148 |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
149 open(file_path, "w") do io |
1177
68445e87fa93
Use benchmark time field instead of now()
Jonatan Werpers <jonatan@werpers.com>
parents:
1176
diff
changeset
|
150 write_result_html(io, r) |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
151 end |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
152 |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
153 return file_path |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
154 end |
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
155 |
1190 | 156 |
1189
525015283843
Add the date function to BenchmarkJudment
Jonatan Werpers <jonatan@werpers.com>
parents:
1188
diff
changeset
|
157 PkgBenchmark.date(j::PkgBenchmark.BenchmarkJudgement) = PkgBenchmark.date(PkgBenchmark.target_result(j)) |
525015283843
Add the date function to BenchmarkJudment
Jonatan Werpers <jonatan@werpers.com>
parents:
1188
diff
changeset
|
158 |
1190 | 159 |
1175
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
160 function hg_id() |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
161 cmd = Cmd(`hg id`, dir=diffinitive_root) |
1175
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
162 return readchomp(addenv(cmd, "HGPLAIN"=>"")) |
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
163 end |
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
164 |
1178
5c34dfc73b37
Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents:
1177
diff
changeset
|
165 function hg_rev() |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
166 cmd = Cmd(`hg id -i`, dir=diffinitive_root) |
1178
5c34dfc73b37
Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents:
1177
diff
changeset
|
167 return readchomp(addenv(cmd, "HGPLAIN"=>"")) |
5c34dfc73b37
Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents:
1177
diff
changeset
|
168 end |
5c34dfc73b37
Add function for getting the hg rev id
Jonatan Werpers <jonatan@werpers.com>
parents:
1177
diff
changeset
|
169 |
1175
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
170 function hg_update(rev) |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
171 cmd = Cmd(`hg update --check -r $rev`, dir=diffinitive_root) |
1175
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
172 run(addenv(cmd, "HGPLAIN"=>"")) |
1308
a8e76daaf2ae
Better return for hg_update()
Jonatan Werpers <jonatan@werpers.com>
parents:
1307
diff
changeset
|
173 |
a8e76daaf2ae
Better return for hg_update()
Jonatan Werpers <jonatan@werpers.com>
parents:
1307
diff
changeset
|
174 return nothing |
1175
a0ab801b62c2
Add some hg functions
Jonatan Werpers <jonatan@werpers.com>
parents:
1174
diff
changeset
|
175 end |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
176 |
1307
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
177 """ |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
178 hg_commit(msg; secret=false) |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
179 |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
180 Make a hg commit with the provided message. If `secret` is true the commit is |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
181 in the secret phase stopping it from being pushed. |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
182 """ |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
183 function hg_commit(msg; secret=false) |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
184 if secret |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
185 cmd = Cmd(`hg commit --verbose --secret --message $msg`, dir=diffinitive_root) |
1307
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
186 else |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
187 cmd = Cmd(`hg commit --verbose --message $msg`, dir=diffinitive_root) |
1307
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
188 end |
27afd53511d4
Add flag to make commit secret in hg_commit()
Jonatan Werpers <jonatan@werpers.com>
parents:
1306
diff
changeset
|
189 |
1303
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
190 out = readchomp(addenv(cmd, "HGPLAIN"=>"")) |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
191 |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
192 return only(match(r"committed changeset \d+:([0-9a-z]+)", out)) |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
193 end |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
194 |
1310 | 195 """ |
196 hg_strip(rev; keep=false) | |
197 | |
198 Strips the given commit from the repo. If `keep` is true, the changes of the | |
199 commit are kept in the working directory. | |
200 """ | |
201 function hg_strip(rev; keep=false) | |
202 if keep | |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
203 cmd = Cmd(`hg --config extensions.strip= strip --keep -r $rev`, dir=diffinitive_root) |
1310 | 204 else |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
205 cmd = Cmd(`hg --config extensions.strip= strip -r $rev`, dir=diffinitive_root) |
1310 | 206 end |
207 | |
208 run(addenv(cmd, "HGPLAIN"=>"")) | |
209 | |
210 return nothing | |
211 end | |
1311
5eb1d0ae0ac1
Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents:
1310
diff
changeset
|
212 |
5eb1d0ae0ac1
Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents:
1310
diff
changeset
|
213 """ |
5eb1d0ae0ac1
Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents:
1310
diff
changeset
|
214 hg_is_dirty() |
5eb1d0ae0ac1
Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents:
1310
diff
changeset
|
215 |
5eb1d0ae0ac1
Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents:
1310
diff
changeset
|
216 Return true if the repositopry has uncommited changes. |
5eb1d0ae0ac1
Add docs for hg_is_dirty
Jonatan Werpers <jonatan@werpers.com>
parents:
1310
diff
changeset
|
217 """ |
1303
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
218 function hg_is_dirty() |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1536
diff
changeset
|
219 cmd = Cmd(`hg identify --id`, dir=diffinitive_root) |
1303
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
220 out = readchomp(addenv(cmd, "HGPLAIN"=>"")) |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
221 |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
222 return endswith(out, "+") |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
223 end |
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
224 |
1312
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
225 """ |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
226 hg_at_revision(f, rev) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
227 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
228 Update the repository to the given revision and run the function `f`. After |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
229 `f` is run the working directory is restored. If there are uncommited changes |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
230 a temporary commit will be used to save the state of the working directory. |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
231 """ |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
232 function hg_at_revision(f, rev) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
233 if hg_is_dirty() |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
234 hg_with_temporary_commit() do |
1313
708dbfd5edb9
Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents:
1312
diff
changeset
|
235 return _hg_at_revision(f, rev) |
1312
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
236 end |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
237 else |
1313
708dbfd5edb9
Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents:
1312
diff
changeset
|
238 return _hg_at_revision(f, rev) |
1312
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
239 end |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
240 end |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
241 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
242 function _hg_at_revision(f, rev) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
243 @assert !hg_is_dirty() |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
244 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
245 origin_rev = hg_rev() |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
246 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
247 hg_update(rev) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
248 try |
1313
708dbfd5edb9
Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents:
1312
diff
changeset
|
249 return f() |
1312
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
250 finally |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
251 hg_update(origin_rev) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
252 end |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
253 end |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
254 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
255 """ |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
256 hg_with_temporary_commit(f) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
257 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
258 Run the function `f` after making a temporary commit with the current working |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
259 directory. After `f` has finished the working directory is restored to its |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
260 original state and the temporary commit stripped. |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
261 """ |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
262 function hg_with_temporary_commit(f) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
263 @assert hg_is_dirty() |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
264 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
265 origin_rev = hg_commit("[Automatic commit by julia]",secret=true) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
266 |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
267 try |
1313
708dbfd5edb9
Make hg_at_revision() return the result of f
Jonatan Werpers <jonatan@werpers.com>
parents:
1312
diff
changeset
|
268 return f() |
1312
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
269 finally |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
270 hg_update(origin_rev) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
271 hg_strip(origin_rev; keep=true) |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
272 end |
f7621dd600e4
Add hg_at_revision()
Jonatan Werpers <jonatan@werpers.com>
parents:
1311
diff
changeset
|
273 end |
1303
2d34290fdc58
Add functions for hg commit and checking if the repo is clean
Jonatan Werpers <jonatan@werpers.com>
parents:
1302
diff
changeset
|
274 |
1190 | 275 |
1172 | 276 # From Pluto.jl/src/webserver/WebServer.jl (2023-01-24) |
277 function open_in_default_browser(url::AbstractString)::Bool | |
278 try | |
279 if Sys.isapple() | |
280 Base.run(`open $url`) | |
281 true | |
282 elseif Sys.iswindows() || detectwsl() | |
283 Base.run(`powershell.exe Start "'$url'"`) | |
284 true | |
285 elseif Sys.islinux() | |
286 Base.run(`xdg-open $url`) | |
287 true | |
288 else | |
289 false | |
290 end | |
291 catch ex | |
292 false | |
293 end | |
294 end | |
295 | |
1190 | 296 |
1174
50c31500eb97
Clean up run_and_view
Jonatan Werpers <jonatan@werpers.com>
parents:
1172
diff
changeset
|
297 main |
1172 | 298 |
1190 | 299 # TODO: Better logging of what is happening |
1191 | 300 # TODO: Improve the workflow? How? |
1190 | 301 |
302 # TODO: Clean up the HTML output? | |
303 # TODO: Make the codeblocks in the table look nicer | |
304 # TODO: Change width of tables and code blocks so everything is visible | |
305 # TODO: Fix the commit id, it chops off all the important info | |
306 # TODO: Make title less verbose | |
307 # TBD: Do we have to replace export_markdown? Could use a template instead. | |
308 | |
1319 | 309 # Should be able to run the current benchmark script at a different revision. |
1321 | 310 # Should have a way to filter the benchmark suite |
1190 | 311 |
312 # TBD: What parts are PkgBenchmark contributing? Can it be stripped out? | |
1306
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
313 |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
314 |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
315 ## Catching the exit code and errors from a command can be done with code similar to |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
316 # proc = open(cmd) |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
317 # if success(proc) |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
318 |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
319 # else |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
320 |
c14370f7c731
Add note about how to hande command exit
Jonatan Werpers <jonatan@werpers.com>
parents:
1305
diff
changeset
|
321 # end |