Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Iris
Iris
Commits
49142779
Commit
49142779
authored
Jan 03, 2017
by
Ralf Jung
Browse files
update gitlab-extract to handle the double-CI-build (Coq 8.5 and 8.6)
parent
e6aeb885
Pipeline
#3566
passed with stage
in 17 minutes and 39 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
benchmark/gitlab-extract.py
View file @
49142779
...
...
@@ -51,27 +51,34 @@ if project is None:
sys
.
stderr
.
write
(
"Project not found.
\n
"
)
sys
.
exit
(
1
)
BREAK
=
False
for
commit
in
parse_log
.
parse_git_commits
(
args
.
commits
):
if
BREAK
:
break
print
(
"Fetching {}..."
.
format
(
commit
))
commit_data
=
req
(
"/projects/{}/repository/commits/{}"
.
format
(
project
[
'id'
],
commit
))
if
commit_data
.
status_code
!=
200
:
raise
Exception
(
"Commit not found?"
)
builds
=
req
(
"/projects/{}/repository/commits/{}/builds"
.
format
(
project
[
'id'
],
commit
))
if
builds
.
status_code
!=
200
:
# no build
continue
build
=
first
(
sorted
(
builds
.
json
(),
key
=
lambda
b
:
-
int
(
b
[
'id'
])))
if
build
is
None
or
build
[
'status'
]
==
'failed'
:
# build failed (or missing...??)
continue
if
build
[
'status'
]
==
'running'
:
# build still running, don't fetch this or any later commit
raise
Exception
(
"Build not found?"
)
# iterate over builds by decreasing ID, and look for the artifact
for
build
in
builds
.
json
():
if
build
[
'status'
]
in
(
'created'
,
'pending'
,
'running'
):
# build still not yet done, don't fetch this or any later commit
BREAK
=
True
break
if
build
[
'status'
]
!=
'success'
:
# build failed or cancelled, skip to next
continue
# now fetch the build times
build_times
=
requests
.
get
(
"{}/builds/{}/artifacts/file/build-time.txt"
.
format
(
project
[
'web_url'
],
build
[
'id'
]))
if
build_times
.
status_code
!=
200
:
# no artifact at this build, try another one
continue
# Output in the log file format
log_file
.
write
(
"# {}
\n
"
.
format
(
commit
))
log_file
.
write
(
build_times
.
text
)
log_file
.
flush
()
# don't fetch another one
break
# now fetch the build times
build_times
=
requests
.
get
(
"{}/builds/{}/artifacts/file/build-time.txt"
.
format
(
project
[
'web_url'
],
build
[
'id'
]))
if
build_times
.
status_code
!=
200
:
raise
Exception
(
"No artifact at build?"
)
# Output in the log file format
log_file
.
write
(
"# {}
\n
"
.
format
(
commit
))
log_file
.
write
(
build_times
.
text
)
log_file
.
flush
()
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment