Commit Graph

654 Commits

Author SHA1 Message Date
James E. Blair
dcacf61853 Add Zuul as a first-party CI name
Change-Id: If9509fb8b1eb9057978cdd7335dfd576d304ada3
2016-06-16 09:14:29 -07:00
Sean Dague
376582d98b Create stable order for CI results stable
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
2016-05-12 13:00:52 -04:00
Sean Dague
05a52a95f2 fix typo in hideci.js
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
2016-05-12 12:45:27 -04:00
Joshua Hesketh
19025e51db Allow 3rd party CI's to have same pipeline names
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
2016-05-11 22:42:26 +10:00
Jenkins
d105f52f13 Merge "Allow the review history panel to resize" 2016-03-08 10:16:41 +00:00
Khai Do
7c0789913b Allow the review history panel to resize
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
2016-01-12 09:46:03 -08:00
Khai Do
3385fe61c9 Show toggle CI button for Gerrit URLs with patch set ranges
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
2016-01-04 17:16:23 -08:00
Sean Dague
f3ddc3d15f also color Verified -1 as red in CS2
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
2015-12-18 07:45:35 -05:00
Jenkins
a40d58cbee Merge "increase info column width" 2015-12-18 10:30:49 +00:00
Jenkins
4dfebbc8ec Merge "Improve new Gerrit change screen" 2015-12-18 08:44:09 +00:00
Sean Dague
9ff2123deb increase info column width
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
2015-12-18 01:53:47 +00:00
Mathieu Gagné
c9cedeb00f Fix top element in hideci.js for new change screen
Top element is now one level above.

Change-Id: I50cac60922bc17c3de9eb5318e0a78e2cb46727e
2015-12-16 20:41:53 -05:00
Mathieu Gagné
6ccb8d5959 Improve new Gerrit change screen
* 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
2015-12-16 16:14:30 -05:00
Khai Do
91f8760b3f Fix toggle ci button for CS2 on Gerrit 2.11
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
2015-12-14 09:34:59 -08:00
Darragh Bailey
ed49dd5d82 Add result_WARNING style class for failing non-voting jobs
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
2015-12-04 12:17:42 +00:00
James E. Blair
c5fffb9f82 Change review->change in zuul table
In the Zuul review table added to gerrit in hideci, replace the
term "Review" with "Change" as it is more correct.

Change-Id: I34010ef651d7c3d41eaa73ae17791806cf6b56ac
2015-06-25 14:40:00 -07:00
Sean Dague
c4b4073367 use optimized url for zuul status
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
2015-05-05 22:34:13 +10:00
Sean Dague
0c18496c2f add jquery visibility
Change-Id: I07449e7b41ac73a7e4c804266c86be0336d64916
2015-05-05 22:34:13 +10:00
Sean Dague
8400d7a184 Revert "Revert zuul status in gerrit"
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
2015-05-05 07:01:48 -04:00
Sean Dague
86d42106dc add dbg function to hideci
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
2015-05-05 06:03:45 -04:00
Sean Dague
2507c4d7c8 create proxy for testing hideci
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
2015-05-05 06:02:39 -04:00
James E. Blair
79b52422a6 Revert "Add a helpful friend to gerrit reviews"
Well, that was fun.

This reverts commit 353d4bd4ab.

Change-Id: I269c2cbb9c80f7a7841ac12fcf46b25821ce397e
2015-04-07 13:26:56 +00:00
James E. Blair
ff6d73b989 Revert zuul status in gerrit
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
2015-04-06 10:46:12 -07:00
Sean Dague
5de98f124f fix hideci regex to work on /#/c/XXXXX/YY
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
2015-04-02 14:16:50 -04:00
Jeremy Stanley
5be687279c Use HTTPS when including Zuul status via hideci
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
2015-04-01 20:05:32 +00:00
Jenkins
8037bf1129 Merge "display zuul in gerrit change" 2015-04-01 19:26:42 +00:00
Gregory Haynes
32acd651eb Disable our friend's noise
Playing sounds is probably a bit much

Change-Id: I0a34dfbcd001eb0ad109d0b953306f6a6a2d9e62
2015-03-31 23:46:40 +00:00
Spencer Krum
353d4bd4ab Add a helpful friend to gerrit reviews
This adds clippy, the workflow accelerator, to gerrit rewiews.
Clippy comes from: https://www.smore.com/clippy-js
A demo is available at: http://reviewtest.cloud.nibalizer.com/#/c/1/

Change-Id: Ia0d9151d1ce81f87f41e8e9083c839898472d6e3
2015-03-31 13:40:08 -07:00
Khai Do
56d046c2bf Fix jquery setup on Gerrit server.
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
2015-03-20 13:56:43 -07:00
Jenkins
5b22787f09 Merge "Stop putting echosign-cla.html onto Gerrit servers" 2015-02-04 21:40:57 +00:00
Joshua Hesketh
0118d2b4b5 display zuul in gerrit change
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
2015-02-02 22:25:34 +11:00
Jeremy Stanley
59d029378a Stop putting echosign-cla.html onto Gerrit servers
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
2015-01-08 20:34:45 +00:00
Jeremy Stanley
28f659944e Workflow documentation is now in infra-manual
Replace URLs for workflow documentation to appropriate parts of the
OpenStack Project Infrastructure Manual.

Change-Id: I8aa32f5617a0331c116a703c45ae7f644f5b409a
2015-01-08 20:31:20 +00:00
Jenkins
7864761690 Merge "Prevents double-execution of ci_page_loaded" 2014-12-12 17:37:13 +00:00
Jenkins
7d67679fa4 Merge "Save last setting of Toggle CI button" 2014-11-18 14:53:12 +00:00
Sean Dague
a3faad5f6a make -1s red in gerrit new screen
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
2014-11-07 11:10:41 +01:00
Davanum Srinivas
f6f58e169a Save last setting of Toggle CI button
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
2014-11-03 15:13:07 +00:00
Matthew Gilliard
90bfe69e4f Prevents double-execution of ci_page_loaded
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
2014-10-30 15:36:06 +00:00
Sean Dague
e923601fdc fix hideci for new change screen
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
2014-10-28 13:01:54 -04:00
Sean Dague
d8af47ed4a only show most recent results per pipeline
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
2014-10-28 06:37:34 -04:00
Sean Dague
f160dcf90c refactor of hideci for readability and modularity
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
2014-09-30 20:11:54 -04:00
Anita Kuno
80a80a6a6b Removes content split into project-config
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
2014-09-25 14:12:51 -04:00
Anita Kuno
11787a748e Creates a new repo, project-config
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
2014-09-24 22:26:35 -04:00
Maxime Vidori
a17dfb65a7 Add flame project on StackForge
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
2014-09-24 23:31:38 +00:00
Jenkins
cdb631b7f7 Merge "Packstack changes" 2014-09-24 22:31:35 +00:00
Jenkins
92cefe5185 Merge "Adds cloudbase-init to StackForge" 2014-09-24 22:30:27 +00:00
Jenkins
0bbd6aaec8 Merge "Allow nova-core/milestone to rebase nova changes" 2014-09-24 21:48:08 +00:00
Jenkins
cee5b89991 Merge "Add os-client-config to stackforge" 2014-09-24 19:32:13 +00:00
Monty Taylor
5d33bee060 Add os-client-config to stackforge
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
2014-09-24 18:35:28 +00:00
Jenkins
78dbb86bda Merge "Add keystone-formula project" 2014-09-24 17:58:36 +00:00