One of the regressions in our pipeline fix was that Jenkins no longer
ends up on top of the results list. From a UX perspective pinning
first party results to the top of the list was very important, because
that's the first thing most people are looking for.
This reintroduces that, plus creates a stable (alphabetic) ordering of
all non first party reporters so that we get a stable reporting order,
and not an order that is merely based on who showed up first.
Change-Id: Idd38a047bc73bfe3d7ecc89291c10c0fefbfe665
During the refactor one of the accumulators wasn't renamed correctly,
which causes a full stop javascript break if we fall into that
conditional block. This fixes that typo.
Change-Id: Ib79805c87a3917d36b69e3b7d621c240b851f7b9
The hideci script previously tried to look up the pipeline of a CI
comment by parsing the typical format (from zuul). It would then
group on this pipeline name and consider multiple comments in one
pipeline to be rechecks.
This doesn't work when two different CI's both use the same pipeline
name. Only the latest CI would be shown.
Instead consider each CI+pipeline to be unique.
This change calls each CI in the results table by "CI Name + Pipeline".
Previously if no pipeline was supplied (eg if not using zuul),
"CI Name + 'check'" would be used. Now just "CI Name" will be displayed.
Change-Id: Ie0f90efeba95ab510dacfb6a0cbe437e9ad2afe0
Remove the fixed width setting from the review history panel to allow
the comment panel to resize and allow the comments to wrap. This
will make it easier to read long comments. This will allow the
history panel to use the entire width of the window and it
will make the comments easier to read, particularly when there
are a lot of comments.
preview: https://imgur.com/pIqAu5F
Change-Id: I589c0c000dd8fab9e7f34410a474590a58799bcb
Toggle CI button isn't present on pages from URL containing
patch set ranges. For example:
https://review.openstack.org/#/c/259360/2..3
Fixed by updating the regular expression used to enable toggle ci to
match URLs containing patch ranges.
Change-Id: I74a5516ccc9eb2feee446410caff0ec023769407
Per request on Mailing List, this makes Verified -1 votes red. With
many 3rd party CI systems reporting in, and there not longer being a
table, it's easier to understand which systems you need to look into.
Change-Id: Id6e7937c28273fd471ad5d34cb4f348c8cf70eab
The info column is default pinned to 458px wide, even when column 3
(related) doesn't exist. There is no reason not to use the extra space
if it's there, and let this float large.
Change-Id: I94f595a45a33c13d201fdeb12ea045d2eefad626
* Add left and right padding around change screen
* Add white space between sections
* Add table borders to change and commit metadata
* Make first line of commit message bold
* Make comment's author always bold even when collapsed
Change-Id: Ie046f87ea3f875d05a0fd2e3d8be34c906d41d6d
Gerrit 2.11 UI changed the divs for the comment info section.
The current use of innerHTML causes a TypeError[1] on page load
because the object is undefined. This change works for both
ver 2.8 and ver 2.11
[1] Uncaught TypeError: Cannot read property 'innerHTML' of undefined
Change-Id: Id6871f3b28218bbd0feff8640512566dd57ca150
As Gerrit applies result styles based on the first word of the response
from the CI job result, add a 'result_WARNING' style to allow failing
non-voting jobs to specify WARNING as the first word to get a colour
applied that is clearly distinguishable from the text from when the job
passes, while also being different to voting jobs that pass/fail.
Change-Id: I1a9bea0c0830f9ca15f8369632ff2fdbeadada56
In the Zuul review table added to gerrit in hideci, replace the
term "Review" with "Change" as it is more correct.
Change-Id: I34010ef651d7c3d41eaa73ae17791806cf6b56ac
This returns the optimized url for zuul, which should dramatically
drop the amount of data transfered out of zuul. It also uses the ajax
method which lets us ensure that we don't schedule another pass
through the loop until we completed the current request.
Add support for jquery visibility optimization
Change-Id: I0e50f07fd9165e7a45c2712f6b1c4b3601759cba
This reverts commit ff6d73b989.
This brings back zuul inline status which is further optimized in
follow on patches. We do this in phases because it's a lot easier to
review that way.
It also introduces zuul_inline global control variable, so we can land
this turned off, and enable in the debugger to verify it's doing the
correct thing.
Change-Id: If951a4a05a7dfef7a6d0c8e15ed263ff0523165e
This provides the facility to leave tracing in hideci that won't
trigger by default, however if trying to debug bad behavior you can
enter the javascript console, set hide_ci_debug = true.
Change-Id: I42bf4e830256ee64eb726e3a82d805f7ca35e246
This is a small tests server for testing hideci (and other gerrit
static file changes), it does this by creating a local http server,
then proxying and translating pages on the file (changing hard coded
references to zuul.o.o and review.o.o to route through this
file). You'll end up with a localhost:8001 (port is configurable) that
you can browse to and be on live gerrit + local files served.
Login doesn't work, because the openid redirect magic appears to
happen in a way that we can't intercept (boo), but you can still poke
at a lot of the interface pretty seamlessly this way. Makes for much
better testing.
We need to fetch zuul targeted status urls over http as well because
default python 2.7 apparently blows it's stack on zuul's ssl cert.
Change-Id: Ic28729cea9f2d1aea675025e5fef29f2bcc25164
The system to add zuul status to gerrit pages is very inefficient
and is causing high load on the zuul server as well as poor
performance in browsers. Remove it until it can be reworked to be
more efficient.
This reverts commit 5be687279c.
This reverts commit 0118d2b4b5.
Change-Id: I0ec03e9c585ecc53a839a7a03fa0171a3d28b873
There previous regex had a bug which meant that the Toggle CI button
and functionality wouldn't trigger when browsing to a change which
included the revision number. This updates the regex to match in those
conditions.
Change-Id: Icc3d580d063c3a64f9d2b7e7d6a46e67afe0c779
Modern browsers are not happy to retrieve plaintext HTTP content
when running in the context of an HTTPS-served page. When including
Zuul's status JSON blob from the Gerrit WebUI via hideci.js, use
HTTPS.
Change-Id: Ibafe2b210ecdebea1781192beb0f4a14a23121eb
The libjs-query package sets up jquery on trusty with these
files and sim links:
~$ ll /usr/share/javascript/jquery/
drwxr-xr-x 2 root root 4096 Jan 15 20:44 ./
drwxr-xr-x 5 root root 4096 Jan 15 20:44 ../
-rw-r--r-- 1 root root 252879 Jul 5 2013 jquery.js
lrwxrwxrwx 1 root root 13 Jul 5 2013 jquery.lite.js -> jquery.min.js
lrwxrwxrwx 1 root root 9 Jul 5 2013 jquery.min.js -> jquery.js
lrwxrwxrwx 1 root root 13 Jul 5 2013 jquery.pack.js -> jquery.min.js
-rw-r--r-- 1 root root 5 May 23 2012 version.txt
The current puppet config is broken for trusty because it attempts to copy
the link instead of the file. This results in a broken sim link to jquery
and breaks the Toggle CI button on Gerrit because that button depends on
jquery. This change corrects this situation by copying the file provided
jquery.js file instead of the link.
Change-Id: I18056ca528871d9a96218f0919bbd262da005f31
This brings over a short summary of current zuul status for gerrit
changes. It is displayed above the test results table. And updates
every 10 seconds. If there are no outstanding changes in zuul, this
will hide the table where it's displayed.
This can be made more network efficient once
Ib8d80530cc99c222226f73046c17ab0bbf6e080b lands, however, it works
pretty quick in it's current format.
Co-Authored-By: Joshua Hesketh <josh@nitrotech.org>
Change-Id: Ice735926204d8cb972b68078e7ee23e56dce0b93
It's been nearly two years since the new ICLA process was put in
place, so the file describing the old one doesn't really need to be
perpetually hosted on our code review servers.
Change-Id: If001290d033ba970281628fb462cb48c9fe7c207
Replace URLs for workflow documentation to appropriate parts of the
OpenStack Project Infrastructure Manual.
Change-Id: I8aa32f5617a0331c116a703c45ae7f644f5b409a
the following css attribute selector will make -1s in the english
ui version of gerrit new screen be the color red. This is as good
as we can do today given that gerrit doesn't provide real classes
on things any more.
Reference on attr selectors: http://css-tricks.com/attribute-selectors/
(should work on all browsers > ie6)
A follow up will be to see if we can get proper semantic tags back
into gerrit for things like this.
Change-Id: I8236cf83b648bfe352daea1f3ae59c151068ab44
Use the same trick used in zuul status page to store a cookie
with the last state so when we load another review, we use the last
setting to show or hide the CI comments.
Change-Id: If912b88c3ad68c1dcaa086ad76abb54ecf5b576b
As gerrit is a big JS-based webapp, traditional hooks for executing code
on page-load (window.onload and friends) don't get executed on every
page as a user is exploring the UI. Instead we rely on the appearance
and disappearance of the "working..." message to know when a user is
looking at a new page. The test for this was not precise enough, which
was causing the ci_page_loaded function to be called twice on page load.
This patch changes the MutationObserver so that it only calls the
function once, by checking that it is the "style" attribute that has
changed. The other call was being triggered by a change to the
"aria-hidden" attribute.
Change-Id: If870d53b5760c140c84e5711ada94609a60e0cdb
The previous hideci enhancements and refactor was not tested on the
new change screen, which sadly removes all the semantic markup around
the displayed changes (boo gerrit).
Do the base parsing based on the looping over the p tags as was done
in the initial version instead of matching divs by semantic tags. A
few of the parsing functions needs to be adapted to know if they are
on old vs. new change screen (like finding the date).
Spot tested locally with new and old change screen, seems to be
working.
Change-Id: Ieadfb78fa4d152d12cb64fc69d808fa510d28abd
Change hideci to only show the most recent results of a pipeline. For
entries where the pipeline is not parsable we default to assuming the
results were in the 'check' pipeline.
3rd Party CI systems are assumed to be 'check' pipeline for the
purposes of this patch.
Order the display of these results for parsed pipeline entries first,
then non parsed entries after. That has the impact of making all the
Jenkins results be the top of the page and 3rd Party come later.
Also provide a (### rechecks) comment if we find more than 1 result at
the current patch set number. This helps reviewers understand that
this patch might be unstable as it's been rechecked to get to the
current state.
Change-Id: I153f73000f9392af6c8bbe850716645b3ba836a0
This is a refactors the hideci code into much smaller functions,
making the whole thing a bit more readable for fixing this going
forward. This was done in order to add a couple of new features. The
smaller functions should also make this code much easier to review.
After the refactor we now do a top down parsing of all comments in a
review, classifying them as 'is_ci' and 'is_trusted_ci' so that we can
more easily compute the results we want going forward.
In the process a few additional features were added.
1) CI results are only shown for the latest patch set, even if no CI
system has reported on it. This is accomplished via
ci_latest_patchset.
2) If CI system is in merge conflict, that's displayed in the results
box.
3) Test results records are lifted in total to the test results
display panel, and each set of test results includes the date that we
got it from. This means that for patches that get 'rechecked' a lot,
you'll see the whole history of test results on current patch. You
will also be able to quickly realize that the current test results are
older than the last recheck comment.
The UX for part 3 is different, and may need tweaking going forward,
however the merge of results from different runs was creating a lot of
confusion to reviewers, so this errors on the side of more clarity.
Because of the largely inconvenient workflow for development (the fact
that you basically need to copy / paste function definitions into
chrome dev console) this isn't broken up as smaller patches. This
should, hopefully, make future patches much easier on this code
though.
Change-Id: I3f128a449756fd6988f3810863cd1d49c476b0dd
Content from the config repo was split into a new repo,
project-config. This patch deletes the moved content from the
config repo.
Change-Id: Ifa1ae2cb7c23ae48f388b7d57a4c0d0799ef1dc2
Story: 167
This patch creates a new repo, openstack-infra/project-config.
This is the first step in the work items to impliment the
spec config-repo-split.
Change-Id: Ibd17035f69501104038d2ec8de0c6e857844cc0e
Story: 167
Flame is an automatic Heat template generator, for a dedicated tenant.
The project is currently available on github:
https://github.com/cloudwatt/flame
Change-Id: I188640ff322c996253c48c91849e3952b4f11c77
os-client-config is a library that consolidates client configuration
for connecting to OpenStack clouds. It wants to be part of an eventual
SDK program, but since that doesn't exist yet, it needs to go into
stackforge.
Change-Id: Icc65ddc6bf4c26e3e8231624d680c3458517fd07