Re: Jenkins job for Ceph mgr dashboard frontend tests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 24, 2018 at 1:42 PM Alfredo Deza <adeza@xxxxxxxxxx> wrote:
>
> On Tue, Jul 24, 2018 at 8:33 AM, John Spray <jspray@xxxxxxxxxx> wrote:
> > On Tue, Jul 24, 2018 at 1:15 PM Alfredo Deza <adeza@xxxxxxxxxx> wrote:
> >>
> >> On Tue, Jul 24, 2018 at 7:46 AM, Laura Paduano <lpaduano@xxxxxxxx> wrote:
> >> > Hi,
> >> >
> >> > On Montag, 23. Juli 2018 16:10:53 CEST Gregory Farnum wrote:
> >> >> On Mon, Jul 23, 2018 at 6:13 AM Laura Paduano <lpaduano@xxxxxxxx> wrote:
> >> >> > Hi all,
> >> >> >
> >> >> > I've created a pull request which is supposed run our Ceph mgr dashboard
> >> >> > frontend (e2e) tests. [1]
> >> >> > In oder to run those tests, we need a compiled Ceph around on the system.
> >> >> > So I was wondering how to integrate this into the Jenkins job..
> >> >> > I guess one option would be to include the run-make-check script
> >> >> > like it's used in the ceph-pull-request Jenkins job [2]  ?
> >> >> > Or is there any other way?
> >> >>
> >> >> This isn't my expertise, but there definitely isn't an established
> >> >> pattern to follow here. You may have noticed that so far the
> >> >> Jenkins-based tests predominantly either
> >> >> 1) build ceph, as in the build-and-make-check jobs that run on PRs, or
> >> >> 2) are used for ceph-ansible, which itself deploys Ceph from packages.
> >> >>
> >> >> There are also the ceph-volume tests, which probably do turn on a
> >> >> cluster, so you could look to see if they're doing something else?
> >> >
> >> > I'll take a look into the jobs and try to figure out how it's done there.
> >> > Thanks!
> >> >>
> >> >> Otherwise, there are two basic paths:
> >> >> 1) You can install from packages, either full releases or dev packages
> >> >> built off master branch etc,
> >> >> 2) You can build it again locally based on the git repo you're testing
> >> >> the dashboard for.
> >> >>
> >> > I think #2 would be the preferred way (or at least that's how we did it with
> >> > pull requests in openATTIC).
> >> >
> >> >> Those will have different tradeoffs and I'm not sure what dominates
> >> >> for the dashboard. (For instance, how often do dashboard PRs include
> >> >> required changes to other Ceph systems?) Hopefully if you do decide to
> >> >> do your own builds you can somehow integrate with the existing per-PR
> >> >> tests that happen, or turn those off in favor of your larger job. It's
> >> >> not critical but those builds do take up some time so it'd be nice not
> >> >> to re-do them unless necessary.
> >> >
> >> > IIRC we thought about integrating the tests into the existing per PR tests,
> >> > but I think there were also some disadvantages (for example having a
> >> > dependency on google-chrome, as well as it's might not be desired to have the
> >> > e2e tests executed on *every* pull request, especially when the number of
> >> > tests is growing it'll be very time consuming.
> >> > I was wondering if it's possible to have something like a "if the PR that is
> >> > being tested has the "dashboard"-label go ahead, install Chrome and execute
> >> > the e2e tests, otherwise skip"-thingy in a Jenkins job configuration..
> >>
> >> This is a similar situation for ceph-volume. We have highly functional
> >> tests that require binaries and repos for the various different
> >> tests we support, and we don't get them for every pull request. So at
> >> the moment, it is on a per-case basis, where we manually
> >> create these repos and then we trigger the jobs to test against those.
> >>
> >> The lack of automation is somewhat annoying, and the wait times are
> >> now about 1.5 hours to get repos, which is the unfortunate effect of
> >> the ever-growing
> >> packages and dependencies in the tree, but we went this way to prevent
> >> building repos unnecessarily for every PR and running ceph-volume
> >> tests that were not
> >> really needed.
> >
> > Is the dependency specifically on having package repos, or just having
> > some binaries?
> >
>
> Repos. Because we test against both CentOS7 and Xenial, and we are
> soon to add a few more, multiplied by our supported OSD scenarios
> (e.g. dmcrypt).
>
> Since we test with ceph-ansible, we want to be sure that the whole
> deployment works as if this was a release.
>
> > One thing I'd love would be for the "make check" process to stash its
> > built tree, so that follow-on jobs (tests that work with a vstart
> > cluster, like qa/mgr, qa/cephfs) could run without rebuilding
> > binaries, or waiting for packages.
>
> This wouldn't work well for our use case because we deploy a cluster.
> Not sure how we would do that with just the binaries, unless you have
> some ideas here

Didn't realise you were talking about the full-on end to end tests.
Anything that tests installing packages is going to need packages :-)

Vaguely related, I am interested in the possibility of doing testing
container builds that skip the packaging, so at the point we're doing
e.g. end to end testing on a k8s/Rook environment, we can look again
at faster CI chains that segue straight from "make check" into bigger
tests.

John

> >
> > John
> >
> >>
> >> >
> >> > Or another way could be to trigger the dashboard tests after the existing per
> >> > PR tests passed by accessing the system on which the PR tests have been run
> >> > already. But I imagine this could be difficult since those systems will be
> >> > destroyed after the tests, won't they?
> >> >
> >> >
> >> >
> >> > Thanks a lot for your feedback, Greg!
> >> >
> >> > Laura
> >> >
> >> >
> >> >> -Greg
> >> >>
> >> >> > [1] https://github.com/ceph/ceph-build/pull/1086
> >> >> > [2]
> >> >> > https://github.com/ceph/ceph-build/blob/master/ceph-pull-requests/config/
> >> >> > definitions/ceph-pull-requests.yml#L56
> >> >> >
> >> >> >
> >> >> > Feedback/ideas/reviews are much appreciated! :)
> >> >> >
> >> >> > Thanks in advance,
> >> >> > Laura
> >> >> >
> >> >> >
> >> >> > --
> >> >> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> >> >> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> >> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> >>
> >> >> --
> >> >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> >> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> >
> >> >
> >> > --
> >> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> >> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux