Re: Excessive tests in Ruqola / dependencies not built as part of the Craft caches
Justin Zobel <[email protected]> Fri, 17 Jul 2026 12:01:16 +0930
| Newsgroups | gmane.comp.kde.devel.general,gmane.comp.kde.devel.core |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------6DfPAkACwx4q610r9imY7z3L
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
On 17/7/26 00:11, Thomas Baumgart wrote:
> On Donnerstag, 16. Juli 2026 14:48:57 Mitteleuropäische Sommerzeit laurent Montel wrote:
>
>> Le jeudi 16 juillet 2026, 14:38:57 heure d’été d’Europe centrale Vlad Zahorodnii a écrit :
>>> Hi,
>>>
>>> On 7/16/26 3:00 PM, laurent Montel wrote:
>>>> Le jeudi 16 juillet 2026, 13:35:05 heure d’été d’Europe centrale Ben Cooksley a écrit :
>>>>> Hi Laurent, all,
>>>> Hi,
>>>>
>>>>> Over the past week or two Sysadmin has received a number of complaints
>>>>> regarding a lack of CI builder availability, primarily from those who work
>>>>> on Plasma. Investigation has revealed that Ruqola appears to use a
>>>>> disproportionately high amount of CI time compared to the size of the
>>>>> project and it's activity.
>>>>>
>>>>> This appears to be driven by the fact that Ruqola has a large number of
>>>>> tests that do not take very long to execute (700 or so tests, yet done in 6
>>>>> minutes - with many of these being less than 1 second to run). Given that
>>>>> every single one of these unit tests needs to have automoc / compiler /
>>>>> linker run on it i'd suggest that similar tests be merged into the same
>>>>> compilation unit (you can run the individual tests, but keep similar tests
>>>>> together in the same unit test).
>>>> In ruqola each autotest depends against a specific class.
>>>> So merging them in one autotest seems not logical.
>>>> It's the same idea that merging autotests from kio in one autotest.
>>>>
>>>> After that I am not against to execute autotests only on linux-qt6-next
>>>> It's the main target. but I need to know how to told to CI to exclude other platforms.
>>> If you're looking for a way to run tests only on a specific platform,
>>> there is `run-tests-on: []` option in `.kde-ci.yml`. If you're looking
>>> for a way to also disable building those tests, I'm not sure.
>> ok => we can exclude all autotests from windows/freebsd
>> => we will reduce timeout.
>>
>> We don't have a environment variable which informs that we are on CI ?
>> => I can exclude building on CI + specific platform.
> I just added that logic to my work project (catching Gitlab and Azure DevOps):
>
> # -------------------------------
> # Detect environment: developer or pipeline
> # -------------------------------
> if(DEFINED ENV{CI} OR DEFINED ENV{GITLAB_CI} OR DEFINED ENV{TF_BUILD})
> set(IS_PIPELINE TRUE)
> else()
> set(IS_PIPELINE FALSE)
> endif()
I wonder if this logic could be expanded to check the day of the week
and only run the tests if it is Sunday for example and only then run the
full test suite?
--------------6DfPAkACwx4q610r9imY7z3L
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
<!DOCTYPE html>
<html data-lt-installed="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body style="padding-bottom: 1px;">
<div class="moz-cite-prefix">On 17/7/26 00:11, Thomas Baumgart
wrote:<br>
</div>
<blockquote type="cite" cite="mid:4916842.vXUDI8C0e8@sy-346-nb">
<pre wrap="" class="moz-quote-pre">On Donnerstag, 16. Juli 2026 14:48:57 Mitteleuropäische Sommerzeit laurent Montel wrote:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Le jeudi 16 juillet 2026, 14:38:57 heure d’été d’Europe centrale Vlad Zahorodnii a écrit :
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Hi,
On 7/16/26 3:00 PM, laurent Montel wrote:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Le jeudi 16 juillet 2026, 13:35:05 heure d’été d’Europe centrale Ben Cooksley a écrit :
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Hi Laurent, all,
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">Hi,
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Over the past week or two Sysadmin has received a number of complaints
regarding a lack of CI builder availability, primarily from those who work
on Plasma. Investigation has revealed that Ruqola appears to use a
disproportionately high amount of CI time compared to the size of the
project and it's activity.
This appears to be driven by the fact that Ruqola has a large number of
tests that do not take very long to execute (700 or so tests, yet done in 6
minutes - with many of these being less than 1 second to run). Given that
every single one of these unit tests needs to have automoc / compiler /
linker run on it i'd suggest that similar tests be merged into the same
compilation unit (you can run the individual tests, but keep similar tests
together in the same unit test).
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">In ruqola each autotest depends against a specific class.
So merging them in one autotest seems not logical.
It's the same idea that merging autotests from kio in one autotest.
After that I am not against to execute autotests only on linux-qt6-next
It's the main target. but I need to know how to told to CI to exclude other platforms.
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
If you're looking for a way to run tests only on a specific platform,
there is `run-tests-on: []` option in `.kde-ci.yml`. If you're looking
for a way to also disable building those tests, I'm not sure.
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
ok => we can exclude all autotests from windows/freebsd
=> we will reduce timeout.
We don't have a environment variable which informs that we are on CI ?
=> I can exclude building on CI + specific platform.
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
I just added that logic to my work project (catching Gitlab and Azure DevOps):
# -------------------------------
# Detect environment: developer or pipeline
# -------------------------------
if(DEFINED ENV{CI} OR DEFINED ENV{GITLAB_CI} OR DEFINED ENV{TF_BUILD})
set(IS_PIPELINE TRUE)
else()
set(IS_PIPELINE FALSE)
endif()</pre>
</blockquote>
I wonder if this logic could be expanded to check the day of the
week and only run the tests if it is Sunday for example and only
then run the full test suite?
</body>
<lt-container></lt-container>
</html>
--------------6DfPAkACwx4q610r9imY7z3L--