Hi everyone,

I was wondering why we don't run every test on every PR.
I saw the earlier comment which said it was too expensive but it would be
good if we had that feature.
As an experiment I ran all tests in a Github PR action here
<https://github.com/gautamworah96/lucene-solr/pull/2/checks?check_run_id=1223630542>
and it took  ~3h 51m.

I think it is useful because sometimes we unknowingly break something in
another module and might not catch it locally because we run `./gradlew
test` only on the submodule that we've modified.
It would also provide some benefit to reviewers (more confidence in
merging?) and reduce breakages in builds.

Looking forward to your feedback!

- Gautam

On Fri, Sep 18, 2020 at 2:04 PM Houston Putman <houstonput...@gmail.com>
wrote:

> Thanks for the feedback everyone!
>
> I'll get us started off with the docker and SolrJ tests. We can revisit
> after a few weeks and see how it has gone.
>
> - Houston
>
> On Fri, Sep 18, 2020 at 2:28 PM Atri Sharma <a...@apache.org> wrote:
>
>> +1.
>>
>> Ability to run tests in Github actions should help prevent a ton of build
>> breakages.
>>
>> Thanks for leading this, Houston!
>>
>> On Fri, 18 Sep 2020 at 21:24, Houston Putman <houstonput...@gmail.com>
>> wrote:
>>
>>> Good point on the reference_impl branch. Eventually that's the goal, but
>>> given there's not a timeline for that to be merged yet I think this is a
>>> good stop-gap. It's a few minutes of work to get these PR actions written,
>>> so I feel like there is little downside. And we can always remove them when
>>> the reference_imp branch gets merged.
>>>
>>> This may block my ability to merge any PR whatsoever.
>>>
>>>
>>> The docker tests will not be run on any PRs that don't touch bin/solr,
>>> solr/packaging or solr/docker.
>>>
>>> There are complications around running integration tests in a
>>> non-containerized environment as well. And if the docker image tests are
>>> failing on the PR, wouldn't you rather know before committing? Even if you
>>> don't want to install docker, you can call in someone else that has it to
>>> help debug. Much like PRs that affect solr.cmd, for committers without
>>> access to a windows machine.
>>>
>>> On Thu, Sep 17, 2020 at 6:23 PM Ishan Chattopadhyaya <
>>> ichattopadhy...@gmail.com> wrote:
>>>
>>>> > It would be great to run all the tests every time, but clearly that
>>>> is too expensive.
>>>>
>>>> The reference_impl branch requires around 30 seconds to run all
>>>> solr-core tests. That's where we should all put our collective efforts.
>>>> Also, I have reservations against docker based tests blocking PRs. If I
>>>> don't have docker running on my dev machine, I wouldn't be able to make
>>>> those tests pass. This may block my ability to merge any PR whatsoever.
>>>> Why can't we have integration tests that do not rely on docker?
>>>>
>>>> On Thu, Sep 17, 2020 at 9:26 PM Houston Putman <houstonput...@gmail.com>
>>>> wrote:
>>>>
>>>>> Thought I'd make this a thread instead of a discussion on a single
>>>>> JIRA ticket.
>>>>>
>>>>> Currently we have gradle precommit run on PRs for master, which is
>>>>> very useful and gives people confidence in approving PRs. But precommit is
>>>>> obviously not the only thing we care about before committing. It would be
>>>>> great to run all the tests every time, but clearly that is too expensive.
>>>>>
>>>>> In SOLR-14856 <https://issues.apache.org/jira/browse/SOLR-14856>, I
>>>>> proposed adding a github action to build and test the solr docker image 
>>>>> for
>>>>> PRs that affected relevant parts of the repo (solr/docker, solr/bin,
>>>>> solr/packaging and solr/contrib/prometheus-exporter/bin). Running the
>>>>> docker tests currently takes roughly 12 minutes in the github action, 
>>>>> which
>>>>> would be costly if it ran on every PR. But when running on the small
>>>>> percentage of PRs that affect those code paths, I think the benefit
>>>>> outweighs the cost.
>>>>>
>>>>> Beyond just the docker tests, I think we can leverage this ability for
>>>>> other features that are limited to certain code paths. For example running
>>>>> tests for contrib modules, testing solr/examples, and many of
>>>>> the independent lucene modules. The SolrJ tests just ran in 3 minutes
>>>>> locally for me, maybe that'd be a good candidate as well.
>>>>>
>>>>> Anyways I'm sure there are other good candidates out there, but I just
>>>>> wanted to start the discussion and hear other opinions before diving any
>>>>> deeper.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>> Regards,
>>
>> Atri
>> Apache Concerted
>>
>

Reply via email to