Re: [sepia] [QA/dashboard] Frontend tests on Jenkins

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

 



Depending on how those 100 units tests are run and what the
dependencies are, It could be easy to use either jenkins or teuthology
to benefit from both. For teuthology its just make a shell script like
we have for various workunits and running it on top of ceph-ansible
task.

On Wed, May 16, 2018 at 3:06 PM, Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
> This is definitely one way to go, but you should think about what exactly
> your needs are. Most of the core Ceph projects write tests that run under
> the teuthology framework. If you use that you'll definitely have an easier
> time combining dashboard tests with other tests, if that's ever something of
> interest, and if you get some of those under eg the RADOS and CephFS suites
> then changes which break the dashboard will be a lot more visible to other
> developers.
>
> On the other hand, the Jenkins tests that Alfredo is suggesting will be a
> lot easier in the short term to get reporting directly into Github, and
> depending on how you write them up may come with a shorter learning curve.
> (It's a mid-term goal of mine to reconcile these frameworks so the choice is
> less binary, but no promises right now...)
> -Greg
>
> On Wed, May 16, 2018 at 7:43 AM Alfredo Deza <adeza@xxxxxxxxxx> wrote:
>>
>> On Tue, May 15, 2018 at 10:32 AM, Laura Paduano <lpaduano@xxxxxxxx> wrote:
>> > Hi,
>> >
>> > right, we would need either Google-Chrome (I'd prefer this one) or
>> > Chromium
>> > and would then run our tests in headless mode (AFAIK this can be
>> > configured
>> > within the
>> > test config files or as parameter when executing the tests).
>> >
>> > I think the easiest way would be to install Google-Chrome (or Chromium)
>> > on
>> > the node which executes the frontend unit tests already.
>>
>> If you would like to use Jenkins for this, then the right place would
>> be the ceph/ceph-build.git repo. Almost all the directories there are
>> Jenkins jobs, that configure requirements (like Chromium in this
>> case).
>>
>> The repo has examples in the documentation, and most jobs can be used
>> as a good reference.
>>
>> For ceph-volume for example, we don't need to run tests on every pull
>> request, so we request the tests ad-hoc, which might be desirable here
>> as well.
>>
>> That configuration, along with the "trigger phrase" is:
>>
>> https://github.com/ceph/ceph-build/blob/master/ceph-volume-pr/config/definitions/ceph-volume-pr.yml
>>
>> The scripts and config are found in the upper level dir at:
>> https://github.com/ceph/ceph-build/tree/master/ceph-volume-pr
>>
>> Once your proposed jenkins job is merged to master it will appear in
>> the Jenkins UI.
>> >
>> > Laura
>> >
>> >
>> >>>> Lenz Grimmer <lgrimmer@xxxxxxxx> 05/15/18 1:48 PM >>>
>> > Hi Laura,
>> >
>> > thanks for bringing this up again. It'd be great if we could extend the
>> > dashboard test coverage by running frontend (E2E) tests.
>> >
>> > Can you please summarize what needs to be done in order to facilitate
>> > this? Is it enough to install Chromium on specific existing Jenkins
>> > nodes, or would this require deploying new instances?
>> >
>> > Lenz
>> >
>> > On 05/15/2018 01:11 PM, Laura Paduano wrote:
>> >
>> >> I just wanted to raise this topic again and wanted to ask for
>> >> feedback/ideas on how to
>> >> proceed.
>> >>
>> >> Any help is appreciated :)
>> >>
>> >>>>> Stephan Müller <smueller@xxxxxxxx> 04/20/18 5:22 PM >>>
>> >> Hi,
>> >> I just wanted to raise a discussion about testing the dashboard
>> >> frontend.
>> >>
>> >> First of all, I'm happy to say that we have gathered over 100 frontend
>> >> unit tests by now.
>> >>
>> >> Each of us makes sure, that all unit tests are passing (of course ;) ),
>> >> so we run 'npm start' which will run all tests on 'Chrome'.
>> >>
>> >> I'm telling you this, because you need to know that we make sure all
>> >> tests are passing in a modern browser that can be used with a UI or
>> >> with out it (headless).
>> >>
>> >> As time goes by we create a PR against ceph and Jenkins will try to run
>> >> our unit tests, but this time, PhantomJS has to be used (...)
>> >>
>> >> PhantomJS doesn't have a UI, doesn't support what modern browsers can
>> >> do, but we can install it through npm.
>> >>
>> >> We increasingly write unit tests and we develop on typescript that will
>> >> be compiled to Javascript that is understandable on any modern browser.
>> >> Modern browsers have implemented built in functionality to understand
>> >> modern ES6 concepts like 'Proxy', but PhantomJS isn't modern.
>> >>
>> >> See this table for more information
>> >> https://kangax.github.io/compat-table/es6/
>> >>
>> >> The thing is, we will hit the limitations of PhantomJS pretty soon, as
>> >> a matter of fact, I already hit it with the use of 'Proxy'.
>> >> https://github.com/ceph/ceph/pull/20822
>> >>
>> >> As you can see in my work, I have to ignore a lot of lines and I have
>> >> to mock out the usage from the code. This will of course increase over
>> >> time.
>> >>
>> >> I would love to see a change here, because we want to have the fronted
>> >> tested through end to end (E2E) tests as well.
>> >>
>> >> Both unit and E2E tests could be run with chrome headless, but
>> >> therefore chromium or google-chrome are needed to be installed on the
>> >> Jenkins instance.
>> >>
>> >> Can someone give me a hint how this installation could be achieved?
>> >> As mocking built ins because of a missing installation, wastes a lot of
>> >> resources.
>> >>
>> >> Any help is appreciated
>> >> --
>> >> Stephan Müller
>> >>
>> >> SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton,
>> >> HRB 21284 (AG Nürnberg)
>> >>
>> >> --
>> >> 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
>> >>
>> >>
>> >>
>> >> _______________________________________________
>> >> Sepia mailing list
>> >> Sepia@xxxxxxxxxxxxxx
>> >> http://lists.ceph.com/listinfo.cgi/sepia-ceph.com
>> >>
>> >
>> > --
>> > SUSE Linux GmbH - Maxfeldstr. 5 - 90409 Nuernberg (Germany)
>> > GF:Felix Imendörffer,Jane Smithard,Graham Norton,HRB 21284 (AG Nürnberg)
>> >
>> >
>> > _______________________________________________
>> > Sepia mailing list
>> > Sepia@xxxxxxxxxxxxxx
>> > http://lists.ceph.com/listinfo.cgi/sepia-ceph.com
>> >
>> _______________________________________________
>> Sepia mailing list
>> Sepia@xxxxxxxxxxxxxx
>> http://lists.ceph.com/listinfo.cgi/sepia-ceph.com
>
>
> _______________________________________________
> Sepia mailing list
> Sepia@xxxxxxxxxxxxxx
> http://lists.ceph.com/listinfo.cgi/sepia-ceph.com
>
--
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