On pe, 23 helmi 2018, Rob Crittenden via FreeIPA-devel wrote:
Alexander Bokovoy via FreeIPA-devel wrote:
> On pe, 23 helmi 2018, Petr Vobornik via FreeIPA-devel wrote:
>> Hi all,
>>
>> Felipe made nightly testing working as PRs in freeipa main Git Hub repo.
>>
>> e.g.:
>>
https://github.com/freeipa/freeipa/pull/1624
>>
https://github.com/freeipa/freeipa/pull/1623
>>
>> This is good. We can see the results publicly in comparison to
>> "upstream Jenkins". I also believe that it will be more stable. But
>> time will tell it. A disadvantage is more noise in mail notifications,
>> but that is not that drastic.
>>
>> Let's discuss some aspects. First one is definitions of the tests
>> (.freeipa-pr-ci.yaml) and how to extend them.
>>
>> We currently use 3 definitions:
>> * gating, the definition in repo
>> * nightly master tests
>> * nighly rawhide tests
>>
>> Gating definition is in repo. But both nightly are not.
>>
>> What is the way how other team members can extend this definition?
>> Where are they kept?
>>
>> Could we also put them into a repo?
> Yes, we can put them in the repo.
>
>>
>> What about the following solution:
>> 1. create a directory with tests definitions, e.g. /ipatests/definitions
>> 2. put these 3 files there
>> - gating
>> - nightly_master
>> - nightly_rawhide
>> 3. make .freeipa-pr-ci.yaml a symlink to /ipatest/definitions/gating
>> 4. for nightly testing do PR which would change only the symlink
>>
>> Benefits:
>> - anybody can extend nightly test suite
>> - the nighlty test suite can be extended right away in a PR which adds
>> the tests
>> - nightly tests won't fail on merge conflict when somebody extends
>> current gating spec
>>
>> Possible alternative is to make it more complex and use something like
>> includes instead of symlinks, but that would need update of PR-CI and
>> I don't see a real benefit in comparison to the symlink solution.
> I think symlink approach should be fine (relative symlink, that is).
>
How would the symlinks work with concurrency?
What concurrency? A PR CI run is:
- git checkout of the pull request
- run things in the checkout
There are no concurrent runners with different test definitions for the
same test run checkout.
What does a nightly/rawhide PR look like? Is that a one-off or
something
that would be scheduled?
Here are the changes from the current run:
https://github.com/freeipa/freeipa/pull/1624/files
Even in this state a simple sequence of
- rebase against master
- push the rebase to PR1624
performed nightly would cause this PR to re-run.
So, yes, someone needs to schedule this periodic rebase but that's all.
--
/ Alexander Bokovoy