* [DISCUSSIONS] CI build
@ 2019-05-22 7:26 Claudius Heine
2019-05-22 8:20 ` Maxim Yu. Osipov
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Claudius Heine @ 2019-05-22 7:26 UTC (permalink / raw)
To: isar-users
Hi,
we discussed some issues with the CI offline.
Here are my issues of the current CI with Jenkins in text:
- Unreliable build:
-> Network and other unrelated issues to the patch
-> Contains expected to fail tests
- Not transparent configuration/environment:
-> parameters with which ci_build.sh is called are not controllable
from the repository
-> difficult to select which test case should be run
-> Configuration of the environment is not controllable from the
repository: Installed packages, System configuration (locales),
Distribution, etc.
- Just one giant build process
-> Takes a long time
-> Cannot be spread over multiple servers
-> Giant log file, that makes it difficult to figure out exactly
which command or test case caused an issue to reproduce that locally
- Manually triggering of build jobs
-> After pushing of CI branch, build has to be triggered via button
-> Patches on ML should be automatically tested and reported back to
ML (that only makes sense if the build is reliable though)
- No "test everything" (acceptance test) build job
- Logs aren't public accessible
Anyone has other issues or comments?
regards,
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 7:26 [DISCUSSIONS] CI build Claudius Heine
@ 2019-05-22 8:20 ` Maxim Yu. Osipov
2019-05-22 9:10 ` Claudius Heine
2019-05-22 19:44 ` Baurzhan Ismagulov
` (2 subsequent siblings)
3 siblings, 1 reply; 17+ messages in thread
From: Maxim Yu. Osipov @ 2019-05-22 8:20 UTC (permalink / raw)
To: Claudius Heine, isar-users
On 5/22/19 9:26 AM, Claudius Heine wrote:
> Hi,
>
> we discussed some issues with the CI offline.
>
> Here are my issues of the current CI with Jenkins in text:
> - Unreliable build:
> -> Network and other unrelated issues to the patch
> -> Contains expected to fail tests
> - Not transparent configuration/environment:
> -> parameters with which ci_build.sh is called are not controllable
> from the repository
> -> difficult to select which test case should be run
Yes. that's why we are going to migrate to avocado test suite.
> -> Configuration of the environment is not controllable from the
> repository: Installed packages, System configuration (locales),
> Distribution, etc.
In my opinion we need to have some "reference" common (better as minimal
as possible) environment, to avoid a zoo of different environments...
> - Just one giant build process
> -> Takes a long time
I fear that it can't be avoided for such kind of build systems - several
months ago we upgraded/tweaked the server and whole CI build itself
takes now around 1 hour (which is acceptable in my opinion).
We are improving now smoke test launching.
> -> Cannot be spread over multiple servers
> -> Giant log file, that makes it difficult to figure out exactly
> which command or test case caused an issue to reproduce that locally
Your project is configured with -q (quiet) option and doesn't generate
huge trace - it becomes verbose only on encountered errors -
I had no problems with such log file as you can easily find the
encountered error and always analyze the build workspace which is not
cleaned up for the last build.
Just have a look at your latest build
http://isar-build.org:8080/job/isar_claudius_ilbers-ci/64/console
it took for me 10 seconds to locate the failed recipe.
> - Manually triggering of build jobs
> -> After pushing of CI branch, build has to be triggered via button
One may enable such build trigger (I believe that such trigger is
enabled for Henning's project). but from my user's experience I prefer
to start the build manually.
Of course, overnights builds are started periodically.
See for details:
https://wiki.jenkins.io/display/JENKINS/Building+a+software+project
> -> Patches on ML should be automatically tested and reported back to
> ML (that only makes sense if the build is reliable though)
Do we really want such feature?
My concern is that ML will be polluted by such reports...
> - No "test everything" (acceptance test) build job
I'll introduce such acceptance test.
> - Logs aren't public accessible
I think that Baurzhan may comment this.
Regards,
Maxim.
>
> Anyone has other issues or comments?
>
> regards,
> Claudius
>
--
Maxim Osipov
ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn
Germany
+49 (151) 6517 6917
mosipov@ilbers.de
http://ilbers.de/
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 8:20 ` Maxim Yu. Osipov
@ 2019-05-22 9:10 ` Claudius Heine
2019-05-22 9:50 ` Maxim Yu. Osipov
0 siblings, 1 reply; 17+ messages in thread
From: Claudius Heine @ 2019-05-22 9:10 UTC (permalink / raw)
To: Maxim Yu. Osipov, isar-users
Hi Maxim,
On 22/05/2019 10.20, Maxim Yu. Osipov wrote:
> On 5/22/19 9:26 AM, Claudius Heine wrote:
[...]
>> -> Configuration of the environment is not controllable from the
>> repository: Installed packages, System configuration (locales),
>> Distribution, etc.
>
> In my opinion we need to have some "reference" common (better as minimal
> as possible) environment, to avoid a zoo of different environments...
Well the more different environments to test against the more you can
find bugs. If we don't want that, then we should deliver a such and
environment together with isar.
[...]
>
>> -> Cannot be spread over multiple servers
>> -> Giant log file, that makes it difficult to figure out exactly
>> which command or test case caused an issue to reproduce that locally
>
> Your project is configured with -q (quiet) option and doesn't generate
> huge trace - it becomes verbose only on encountered errors -
> I had no problems with such log file as you can easily find the
> encountered error and always analyze the build workspace which is not
> cleaned up for the last build.
>
> Just have a look at your latest build
> http://isar-build.org:8080/job/isar_claudius_ilbers-ci/64/console
> it took for me 10 seconds to locate the failed recipe.
Well its not always about a failed recipe. The ci_build.sh script now
contains multiple different calls to bitbake, but we don't see those
calls in the log. There is also no mention about other calls, like sed
which changes the configuration.
>
>> - Manually triggering of build jobs
>> -> After pushing of CI branch, build has to be triggered via button
>
> One may enable such build trigger (I believe that such trigger is
> enabled for Henning's project). but from my user's experience I prefer
> to start the build manually.
I normally just push to the ci branch when I want to start tests.
>
> Of course, overnights builds are started periodically.
>
> See for details:
> https://wiki.jenkins.io/display/JENKINS/Building+a+software+project
>
>> -> Patches on ML should be automatically tested and reported back
>> to ML (that only makes sense if the build is reliable though)
>
> Do we really want such feature?
> My concern is that ML will be polluted by such reports...
You are currently testing and reporting back manually, if instead of you
some bot would do that automatically, then I don't how that would
increase the noise on the ML. But as I said that only makes sense if the
false positive and negative rates of CI is lessened.
regards,
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 9:10 ` Claudius Heine
@ 2019-05-22 9:50 ` Maxim Yu. Osipov
2019-05-22 11:28 ` Claudius Heine
0 siblings, 1 reply; 17+ messages in thread
From: Maxim Yu. Osipov @ 2019-05-22 9:50 UTC (permalink / raw)
To: Claudius Heine, isar-users
On 5/22/19 11:10 AM, Claudius Heine wrote:
> Hi Maxim,
>
> On 22/05/2019 10.20, Maxim Yu. Osipov wrote:
>> On 5/22/19 9:26 AM, Claudius Heine wrote:
> [...]
>>> -> Configuration of the environment is not controllable from the
>>> repository: Installed packages, System configuration (locales),
>>> Distribution, etc.
>>
>> In my opinion we need to have some "reference" common (better as
>> minimal as possible) environment, to avoid a zoo of different
>> environments...
>
> Well the more different environments to test against the more you can
> find bugs. If we don't want that, then we should deliver a such and
> environment together with isar.
Please provide your detailed proposals how this can be formalized as
there is an indefinite number of environments.
Again, I vote for some common "reference" environment.
> [...]
>
>>
>>> -> Cannot be spread over multiple servers
>>> -> Giant log file, that makes it difficult to figure out exactly
>>> which command or test case caused an issue to reproduce that locally
>>
>> Your project is configured with -q (quiet) option and doesn't generate
>> huge trace - it becomes verbose only on encountered errors -
>> I had no problems with such log file as you can easily find the
>> encountered error and always analyze the build workspace which is not
>> cleaned up for the last build.
>>
>> Just have a look at your latest build
>> http://isar-build.org:8080/job/isar_claudius_ilbers-ci/64/console
>> it took for me 10 seconds to locate the failed recipe.
>
> Well its not always about a failed recipe. The ci_build.sh script now
> contains multiple different calls to bitbake, but we don't see those
> calls in the log. There is also no mention about other calls, like sed
> which changes the configuration.
OK, I'll add `set -x` in ci_build.sh.
>
>>
>>> - Manually triggering of build jobs
>>> -> After pushing of CI branch, build has to be triggered via button
>>
>> One may enable such build trigger (I believe that such trigger is
>> enabled for Henning's project). but from my user's experience I prefer
>> to start the build manually.
>
> I normally just push to the ci branch when I want to start tests.
I've enabled the corresponding options for your projects - please try.
>
>>
>> Of course, overnights builds are started periodically.
>>
>> See for details:
>> https://wiki.jenkins.io/display/JENKINS/Building+a+software+project
>>
>>> -> Patches on ML should be automatically tested and reported back
>>> to ML (that only makes sense if the build is reliable though)
>>
>> Do we really want such feature?
>> My concern is that ML will be polluted by such reports...
>
> You are currently testing and reporting back manually, if instead of you
> some bot would do that automatically, then I don't how that would
> increase the noise on the ML. But as I said that only makes sense if the
> false positive and negative rates of CI is lessened.
Manual work is unavoidable as sometimes patches are not merged properly.
I'll enable reporting to ML when I push a patch set to maintainers
branches for CI.
Regards,
Maxim.
>
> regards,
> Claudius
>
--
Maxim Osipov
ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn
Germany
+49 (151) 6517 6917
mosipov@ilbers.de
http://ilbers.de/
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 9:50 ` Maxim Yu. Osipov
@ 2019-05-22 11:28 ` Claudius Heine
2019-05-23 8:10 ` Claudius Heine
0 siblings, 1 reply; 17+ messages in thread
From: Claudius Heine @ 2019-05-22 11:28 UTC (permalink / raw)
To: Maxim Yu. Osipov, isar-users
Hi Maxim,
On 22/05/2019 11.50, Maxim Yu. Osipov wrote:
> On 5/22/19 11:10 AM, Claudius Heine wrote:
>> Hi Maxim,
>>
>> On 22/05/2019 10.20, Maxim Yu. Osipov wrote:
>>> On 5/22/19 9:26 AM, Claudius Heine wrote:
>> [...]
>>>> -> Configuration of the environment is not controllable from the
>>>> repository: Installed packages, System configuration (locales),
>>>> Distribution, etc.
>>>
>>> In my opinion we need to have some "reference" common (better as
>>> minimal as possible) environment, to avoid a zoo of different
>>> environments...
>>
>> Well the more different environments to test against the more you can
>> find bugs. If we don't want that, then we should deliver a such and
>> environment together with isar.
>
> Please provide your detailed proposals how this can be formalized as
> there is an indefinite number of environments.
For me containers have proven to provide ways to easily provision and
configure the content while having a reasonable hit on performance.
> Again, I vote for some common "reference" environment.
If you want to go that way, then maybe choose the kasproject/kas-isar
docker container as the reference environment, since that is used by
most contributors when developing AFAIK. And then we can point to that
container in the documentation as well, so nobody will try to run isar
in a different environment.
>
>
>> [...]
>>
>>>
>>>> -> Cannot be spread over multiple servers
>>>> -> Giant log file, that makes it difficult to figure out exactly
>>>> which command or test case caused an issue to reproduce that locally
>>>
>>> Your project is configured with -q (quiet) option and doesn't
>>> generate huge trace - it becomes verbose only on encountered errors -
>>> I had no problems with such log file as you can easily find the
>>> encountered error and always analyze the build workspace which is not
>>> cleaned up for the last build.
>>>
>>> Just have a look at your latest build
>>> http://isar-build.org:8080/job/isar_claudius_ilbers-ci/64/console
>>> it took for me 10 seconds to locate the failed recipe.
>>
>> Well its not always about a failed recipe. The ci_build.sh script now
>> contains multiple different calls to bitbake, but we don't see those
>> calls in the log. There is also no mention about other calls, like sed
>> which changes the configuration.
>
> OK, I'll add `set -x` in ci_build.sh.
Hopefully that will not be too noisy on the log.
>
>>
>>>
>>>> - Manually triggering of build jobs
>>>> -> After pushing of CI branch, build has to be triggered via button
>>>
>>> One may enable such build trigger (I believe that such trigger is
>>> enabled for Henning's project). but from my user's experience I
>>> prefer to start the build manually.
>>
>> I normally just push to the ci branch when I want to start tests.
>
> I've enabled the corresponding options for your projects - please try.
Thanks. But I think I should now have two branches for each different
build parameter set. So that I don't trigger both builds just for one push.
>
>>
>>>
>>> Of course, overnights builds are started periodically.
>>>
>>> See for details:
>>> https://wiki.jenkins.io/display/JENKINS/Building+a+software+project
>>>
>>>> -> Patches on ML should be automatically tested and reported
>>>> back to ML (that only makes sense if the build is reliable though)
>>>
>>> Do we really want such feature?
>>> My concern is that ML will be polluted by such reports...
>>
>> You are currently testing and reporting back manually, if instead of
>> you some bot would do that automatically, then I don't how that would
>> increase the noise on the ML. But as I said that only makes sense if
>> the false positive and negative rates of CI is lessened.
>
> Manual work is unavoidable as sometimes patches are not merged properly.
> I'll enable reporting to ML when I push a patch set to maintainers
> branches for CI.
Can you make it so that it emails with the correct email 'in-reply-to'
header, so it lands in the right thread of the patchset? Otherwise
ordering that will be annoying.
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 7:26 [DISCUSSIONS] CI build Claudius Heine
2019-05-22 8:20 ` Maxim Yu. Osipov
@ 2019-05-22 19:44 ` Baurzhan Ismagulov
2019-05-23 4:44 ` Jan Kiszka
2019-05-23 11:35 ` Henning Schild
2019-05-30 8:29 ` Jenkins project configuration by user Maxim Yu. Osipov
3 siblings, 1 reply; 17+ messages in thread
From: Baurzhan Ismagulov @ 2019-05-22 19:44 UTC (permalink / raw)
To: isar-users
Hi Claudius,
thanks for summarizing. I think we'll open github issues at least for some of
the items.
On Wed, May 22, 2019 at 09:26:51AM +0200, Claudius Heine wrote:
> Here are my issues of the current CI with Jenkins in text:
> - Unreliable build:
> -> Network and other unrelated issues to the patch
> -> Contains expected to fail tests
We'll work on these.
> - Not transparent configuration/environment:
> -> parameters with which ci_build.sh is called are not controllable from
> the repository
Hmm, the intention actually was that everyone runs the same fixed testsuites.
If desired, we could publish the arguments and gradually move them to the isar
repo.
> -> difficult to select which test case should be run
This is the motivation for Avocado.
> -> Configuration of the environment is not controllable from the
> repository: Installed packages, System configuration (locales),
> Distribution, etc.
Here the intention has also been to have one standard testing environment, and
it is Debian stable + instructions from Quick Start, nothing more. I'd welcome
moving to kas + docker. If desired, we could publish the current setup.
I'd like to have the testsuite be runnable from any CI system with the same
script, without arguments. Then people could deploy any system they like
(Jenkins, GitLab, Travis CI, AWS...). The same testsuite should also be
runnable on one's host (already the case with ci_build, vm_smoke_test). Under
the hood, every test case should be defined and runnable individually
(Avocado).
> - Just one giant build process
> -> Takes a long time
This will be solved with Avocado.
> -> Cannot be spread over multiple servers
Haven't looked at that, ideas welcome. Jan told us he is preparing something,
but load balancing would spread multiple pipelines, not tasks within one
pipeline. Depending on the costs, it might or might not be cheaper for us to
throw more physical servers on the task.
> -> Giant log file, that makes it difficult to figure out exactly which
> command or test case caused an issue to reproduce that locally
This will be solved with Avocado.
> - Manually triggering of build jobs
> -> After pushing of CI branch, build has to be triggered via button
I actually prefer working in this mode. Henning has polling enabled. If you
prefer two branches, please send the second branch URL to Maxim.
> -> Patches on ML should be automatically tested and reported back to ML
> (that only makes sense if the build is reliable though)
I haven't looked at that. Is there a tool that does this?
> - No "test everything" (acceptance test) build job
Currently, it's the combination of cross and native builds. However, there are
a couple of steps that are still performed manually for various reasons. I'd
like to see them automated if at all possible.
> - Logs aren't public accessible
Logs are accessible with authentication. Jenkins has public mode, but it lists
the users publicly, that is why we haven't opened it till now. If desired, we
could look at that. Is it that high-priority, given that all major contributors
here have access?
With kind regards,
Baurzhan.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 19:44 ` Baurzhan Ismagulov
@ 2019-05-23 4:44 ` Jan Kiszka
2019-05-23 8:32 ` Claudius Heine
0 siblings, 1 reply; 17+ messages in thread
From: Jan Kiszka @ 2019-05-23 4:44 UTC (permalink / raw)
To: isar-users
On 22.05.19 21:44, Baurzhan Ismagulov wrote:
> Hi Claudius,
>
> thanks for summarizing. I think we'll open github issues at least for some of
> the items.
>
> On Wed, May 22, 2019 at 09:26:51AM +0200, Claudius Heine wrote:
>> Here are my issues of the current CI with Jenkins in text:
>> - Unreliable build:
>> -> Network and other unrelated issues to the patch
>> -> Contains expected to fail tests
>
> We'll work on these.
>
>
>> - Not transparent configuration/environment:
>> -> parameters with which ci_build.sh is called are not controllable from
>> the repository
>
> Hmm, the intention actually was that everyone runs the same fixed testsuites.
> If desired, we could publish the arguments and gradually move them to the isar
> repo.
>
>
>> -> difficult to select which test case should be run
>
> This is the motivation for Avocado.
>
>
>> -> Configuration of the environment is not controllable from the
>> repository: Installed packages, System configuration (locales),
>> Distribution, etc.
>
> Here the intention has also been to have one standard testing environment, and
> it is Debian stable + instructions from Quick Start, nothing more. I'd welcome
> moving to kas + docker. If desired, we could publish the current setup.
>
> I'd like to have the testsuite be runnable from any CI system with the same
> script, without arguments. Then people could deploy any system they like
> (Jenkins, GitLab, Travis CI, AWS...). The same testsuite should also be
> runnable on one's host (already the case with ci_build, vm_smoke_test). Under
> the hood, every test case should be defined and runnable individually
> (Avocado).
>
>
>> - Just one giant build process
>> -> Takes a long time
>
> This will be solved with Avocado.
>
Nope, this requires scale-out into parallel jobs on a build farm, rather than a
single server. E.g. we would scale better by doing per-arch builds so that arch
commonality can still be exploited but the rest can work lock-free with own I/O
bandwidth etc. on separate servers (or nodes in the cloud).
>
>> -> Cannot be spread over multiple servers
>
> Haven't looked at that, ideas welcome. Jan told us he is preparing something,
> but load balancing would spread multiple pipelines, not tasks within one
> pipeline. Depending on the costs, it might or might not be cheaper for us to
> throw more physical servers on the task.
>
https://lists.cip-project.org/pipermail/cip-dev/2019-May/002371.html
>
>> -> Giant log file, that makes it difficult to figure out exactly which
>> command or test case caused an issue to reproduce that locally
>
> This will be solved with Avocado.
>
>
>> - Manually triggering of build jobs
>> -> After pushing of CI branch, build has to be triggered via button
>
> I actually prefer working in this mode. Henning has polling enabled. If you
> prefer two branches, please send the second branch URL to Maxim.
>
I also prefer standard build-on-push. But when everyone can build his own CI or
use locally shared ones with personal, repo-controlled settings, we no longer
depend on having to sync the working modes.
>
>> -> Patches on ML should be automatically tested and reported back to ML
>> (that only makes sense if the build is reliable though)
>
> I haven't looked at that. Is there a tool that does this?
>
>
>> - No "test everything" (acceptance test) build job
>
> Currently, it's the combination of cross and native builds. However, there are
> a couple of steps that are still performed manually for various reasons. I'd
> like to see them automated if at all possible.
>
>
>> - Logs aren't public accessible
>
> Logs are accessible with authentication. Jenkins has public mode, but it lists
> the users publicly, that is why we haven't opened it till now. If desired, we
> could look at that. Is it that high-priority, given that all major contributors
> here have access?
>
Let's stop wasting thoughts on legacy Jenkins, rather discuss how we can move on
to gitlab-ci, if something is missing there etc.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 11:28 ` Claudius Heine
@ 2019-05-23 8:10 ` Claudius Heine
2019-05-23 13:43 ` Claudius Heine
0 siblings, 1 reply; 17+ messages in thread
From: Claudius Heine @ 2019-05-23 8:10 UTC (permalink / raw)
To: Maxim Yu. Osipov, isar-users
Hi,
On 22/05/2019 13.28, [ext] Claudius Heine wrote:
[...]
>>
>>>
>>>>
>>>>> - Manually triggering of build jobs
>>>>> -> After pushing of CI branch, build has to be triggered via
>>>>> button
>>>>
>>>> One may enable such build trigger (I believe that such trigger is
>>>> enabled for Henning's project). but from my user's experience I
>>>> prefer to start the build manually.
>>>
>>> I normally just push to the ci branch when I want to start tests.
>>
>> I've enabled the corresponding options for your projects - please try.
>
> Thanks. But I think I should now have two branches for each different
> build parameter set. So that I don't trigger both builds just for one push.
I pushed a ch/ilbers-ci-fast branch for the fast build.
>
>>
>>>
>>>>
>>>> Of course, overnights builds are started periodically.
>>>>
>>>> See for details:
>>>> https://wiki.jenkins.io/display/JENKINS/Building+a+software+project
>>>>
>>>>> -> Patches on ML should be automatically tested and reported
>>>>> back to ML (that only makes sense if the build is reliable though)
>>>>
>>>> Do we really want such feature?
>>>> My concern is that ML will be polluted by such reports...
>>>
>>> You are currently testing and reporting back manually, if instead of
>>> you some bot would do that automatically, then I don't how that would
>>> increase the noise on the ML. But as I said that only makes sense if
>>> the false positive and negative rates of CI is lessened.
>>
>> Manual work is unavoidable as sometimes patches are not merged properly.
>> I'll enable reporting to ML when I push a patch set to maintainers
>> branches for CI.
>
> Can you make it so that it emails with the correct email 'in-reply-to'
> header, so it lands in the right thread of the patchset? Otherwise
> ordering that will be annoying.
Just to clarify: In all my points I would prefer a good solution instead
of a quick one. If some points are quick to solve without any
disadvantages, then ok. But if some quick solution will probably have
other undesired side-effects, then take a step back and think about
other ways to fix those issues without those, even if that might take a
while to work them out. The current system is ok enough to bare with it
until a proper solution is in place.
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 4:44 ` Jan Kiszka
@ 2019-05-23 8:32 ` Claudius Heine
2019-05-23 8:39 ` Jan Kiszka
2019-05-23 10:58 ` Maxim Yu. Osipov
0 siblings, 2 replies; 17+ messages in thread
From: Claudius Heine @ 2019-05-23 8:32 UTC (permalink / raw)
To: [ext] Jan Kiszka, isar-users
Hi Jan, hi Baurzhan,
On 23/05/2019 06.44, [ext] Jan Kiszka wrote:
>>> - Not transparent configuration/environment:
>>> -> parameters with which ci_build.sh is called are not
>>> controllable from
>>> the repository
>>
>> Hmm, the intention actually was that everyone runs the same fixed
>> testsuites.
>> If desired, we could publish the arguments and gradually move them to
>> the isar
>> repo.
Which is currently not the case, we have a 'normal' build, a 'fast'
build, a 'cross' build and a 'repo' build, which can be combined with
'normal', 'fast' and 'cross' IIUC.
>>
>>
>>> -> difficult to select which test case should be run
>>
>> This is the motivation for Avocado.
>>
>>
>>> -> Configuration of the environment is not controllable from the
>>> repository: Installed packages, System configuration (locales),
>>> Distribution, etc.
>>
>> Here the intention has also been to have one standard testing
>> environment, and
>> it is Debian stable + instructions from Quick Start, nothing more. I'd
>> welcome
>> moving to kas + docker. If desired, we could publish the current setup.
>>
>> I'd like to have the testsuite be runnable from any CI system with the
>> same
>> script, without arguments. Then people could deploy any system they like
>> (Jenkins, GitLab, Travis CI, AWS...). The same testsuite should also be
>> runnable on one's host (already the case with ci_build,
>> vm_smoke_test). Under
>> the hood, every test case should be defined and runnable individually
>> (Avocado).
Personally I don't really care about executing the whole CI process
locally. I am much more interested in triggering single failed
test-cases locally to work on them. So the 'ci_build.sh' is not really
useful for me.
'ci_build.sh' is just to unhandy to use locally.
[...]
>>> -> Cannot be spread over multiple servers
>>
>> Haven't looked at that, ideas welcome. Jan told us he is preparing
>> something,
>> but load balancing would spread multiple pipelines, not tasks within one
>> pipeline. Depending on the costs, it might or might not be cheaper for
>> us to
>> throw more physical servers on the task.
>>
>
> https://lists.cip-project.org/pipermail/cip-dev/2019-May/002371.html
Would have been nice to have this cross-posted to this ML as well.
Will Michael write patches for isar to integrate this, or does he needs
anything to do this?
>>
>>> -> Patches on ML should be automatically tested and reported back
>>> to ML
>>> (that only makes sense if the build is reliable though)
>>
>> I haven't looked at that. Is there a tool that does this?
Not really. But I posted a patchwork+jenkins integration howto some time
ago: https://that.guru/blog/patchwork-and-ci-in-a-tree/
>>> - Logs aren't public accessible
>>
>> Logs are accessible with authentication. Jenkins has public mode, but
>> it lists
>> the users publicly, that is why we haven't opened it till now. If
>> desired, we
>> could look at that. Is it that high-priority, given that all major
>> contributors
>> here have access?
>>
>
> Let's stop wasting thoughts on legacy Jenkins, rather discuss how we can
> move on to gitlab-ci, if something is missing there etc.
I can only figure out what is missing after I tried it out.
regards,
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 8:32 ` Claudius Heine
@ 2019-05-23 8:39 ` Jan Kiszka
2019-05-23 10:58 ` Maxim Yu. Osipov
1 sibling, 0 replies; 17+ messages in thread
From: Jan Kiszka @ 2019-05-23 8:39 UTC (permalink / raw)
To: Claudius Heine, isar-users
On 23.05.19 10:32, Claudius Heine wrote:
>>>> -> Cannot be spread over multiple servers
>>>
>>> Haven't looked at that, ideas welcome. Jan told us he is preparing something,
>>> but load balancing would spread multiple pipelines, not tasks within one
>>> pipeline. Depending on the costs, it might or might not be cheaper for us to
>>> throw more physical servers on the task.
>>>
>>
>> https://lists.cip-project.org/pipermail/cip-dev/2019-May/002371.html
>
> Would have been nice to have this cross-posted to this ML as well.
>
We wanted to do that once a build is public, see also the follow-up in that thread.
> Will Michael write patches for isar to integrate this, or does he needs anything
> to do this?
>
There is currently no need for patches, gitlab-ci.yml already exists in isar and
is being used. But there will likely be the desire to tune that further, add the
qemu-based tests once the infrastructure is running.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 8:32 ` Claudius Heine
2019-05-23 8:39 ` Jan Kiszka
@ 2019-05-23 10:58 ` Maxim Yu. Osipov
1 sibling, 0 replies; 17+ messages in thread
From: Maxim Yu. Osipov @ 2019-05-23 10:58 UTC (permalink / raw)
To: Claudius Heine, [ext] Jan Kiszka, isar-users
On 5/23/19 10:32 AM, Claudius Heine wrote:
> Hi Jan, hi Baurzhan,
>
> On 23/05/2019 06.44, [ext] Jan Kiszka wrote:
>>>> - Not transparent configuration/environment:
>>>> -> parameters with which ci_build.sh is called are not
>>>> controllable from
>>>> the repository
>>>
>>> Hmm, the intention actually was that everyone runs the same fixed
>>> testsuites.
>>> If desired, we could publish the arguments and gradually move them to
>>> the isar
>>> repo.
>
> Which is currently not the case, we have a 'normal' build, a 'fast'
> build, a 'cross' build and a 'repo' build, which can be combined with
> 'normal', 'fast' and 'cross' IIUC.
Just to clarify.
If the patches I've sent yesterday are accepted the
'normal' build will include
* parallel cross compilation of the set
stretch qemuarm/qemuarm64/qemuamd64/de0-nano-soc/rpi and
buster qemuarm
* sdk creation for stretch qemuarm
* parallel native compilation of the set
stretch qemuarm/qemuarm64/qemui386/qemuamd64/rpi and
buster qemuarm/qemui386/qemuamd64/qemuamd64-buster-tgz/nand-ubi-demo
'fast' build excludes native compilation.
If the extra option 'repro' is enabled, additional separate build
to create/use cached base repo for stretch qemuarm/qemuarm64/qemuamd64
is launched.
To maximize test coverage I've enabled repro for all your projects in
Jenkins.
So if the patch set is accepted it would be enough to run 'normal' build
with 'repro' option: 'scripts/ci_build.sh -q -r'
Regards,
Maxim.
>>>
>>>
>>>> -> difficult to select which test case should be run
>>>
>>> This is the motivation for Avocado.
>>>
>>>
>>>> -> Configuration of the environment is not controllable from the
>>>> repository: Installed packages, System configuration (locales),
>>>> Distribution, etc.
>>>
>>> Here the intention has also been to have one standard testing
>>> environment, and
>>> it is Debian stable + instructions from Quick Start, nothing more.
>>> I'd welcome
>>> moving to kas + docker. If desired, we could publish the current setup.
>>>
>>> I'd like to have the testsuite be runnable from any CI system with
>>> the same
>>> script, without arguments. Then people could deploy any system they like
>>> (Jenkins, GitLab, Travis CI, AWS...). The same testsuite should also be
>>> runnable on one's host (already the case with ci_build,
>>> vm_smoke_test). Under
>>> the hood, every test case should be defined and runnable individually
>>> (Avocado).
>
> Personally I don't really care about executing the whole CI process
> locally. I am much more interested in triggering single failed
> test-cases locally to work on them. So the 'ci_build.sh' is not really
> useful for me.
>
> 'ci_build.sh' is just to unhandy to use locally.
>
> [...]
>>>> -> Cannot be spread over multiple servers
>>>
>>> Haven't looked at that, ideas welcome. Jan told us he is preparing
>>> something,
>>> but load balancing would spread multiple pipelines, not tasks within one
>>> pipeline. Depending on the costs, it might or might not be cheaper
>>> for us to
>>> throw more physical servers on the task.
>>>
>>
>> https://lists.cip-project.org/pipermail/cip-dev/2019-May/002371.html
>
> Would have been nice to have this cross-posted to this ML as well.
>
> Will Michael write patches for isar to integrate this, or does he needs
> anything to do this?
>
>>>
>>>> -> Patches on ML should be automatically tested and reported
>>>> back to ML
>>>> (that only makes sense if the build is reliable though)
>>>
>>> I haven't looked at that. Is there a tool that does this?
>
> Not really. But I posted a patchwork+jenkins integration howto some time
> ago: https://that.guru/blog/patchwork-and-ci-in-a-tree/
>
>>>> - Logs aren't public accessible
>>>
>>> Logs are accessible with authentication. Jenkins has public mode, but
>>> it lists
>>> the users publicly, that is why we haven't opened it till now. If
>>> desired, we
>>> could look at that. Is it that high-priority, given that all major
>>> contributors
>>> here have access?
>>>
>>
>> Let's stop wasting thoughts on legacy Jenkins, rather discuss how we
>> can move on to gitlab-ci, if something is missing there etc.
>
> I can only figure out what is missing after I tried it out.
>
> regards,
> Claudius
>
--
Maxim Osipov
ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn
Germany
+49 (151) 6517 6917
mosipov@ilbers.de
http://ilbers.de/
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-22 7:26 [DISCUSSIONS] CI build Claudius Heine
2019-05-22 8:20 ` Maxim Yu. Osipov
2019-05-22 19:44 ` Baurzhan Ismagulov
@ 2019-05-23 11:35 ` Henning Schild
2019-05-23 12:11 ` Baurzhan Ismagulov
2019-05-30 8:29 ` Jenkins project configuration by user Maxim Yu. Osipov
3 siblings, 1 reply; 17+ messages in thread
From: Henning Schild @ 2019-05-23 11:35 UTC (permalink / raw)
To: [ext] Claudius Heine; +Cc: isar-users
Am Wed, 22 May 2019 09:26:51 +0200
schrieb "[ext] Claudius Heine" <claudius.heine.ext@siemens.com>:
> Hi,
>
> we discussed some issues with the CI offline.
>
> Here are my issues of the current CI with Jenkins in text:
> - Unreliable build:
> -> Network and other unrelated issues to the patch
> -> Contains expected to fail tests
Agreed, i stopped running the tests locally because i could never come
up with the same errors. Actually the CI itself could never come up
with the same ones .... but it kept failing without giving a real clue
why.
> - Not transparent configuration/environment:
> -> parameters with which ci_build.sh is called are not
> controllable from the repository
> -> difficult to select which test case should be run
> -> Configuration of the environment is not controllable from
> the repository: Installed packages, System configuration (locales),
> Distribution, etc.
> - Just one giant build process
> -> Takes a long time
> -> Cannot be spread over multiple servers
> -> Giant log file, that makes it difficult to figure out
> exactly which command or test case caused an issue to reproduce that
> locally
When i use the CI system from Ilbers i usually carry around a few "fast
CI" patches on top of my real changes. In there i configure CI to do
what i want and only build one config to start with. Not elegant but
works somehow.
Henning
> - Manually triggering of build jobs
> -> After pushing of CI branch, build has to be triggered via
> button -> Patches on ML should be automatically tested and reported
> back to ML (that only makes sense if the build is reliable though)
> - No "test everything" (acceptance test) build job
> - Logs aren't public accessible
>
> Anyone has other issues or comments?
>
> regards,
> Claudius
>
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 11:35 ` Henning Schild
@ 2019-05-23 12:11 ` Baurzhan Ismagulov
0 siblings, 0 replies; 17+ messages in thread
From: Baurzhan Ismagulov @ 2019-05-23 12:11 UTC (permalink / raw)
To: isar-users
On Thu, May 23, 2019 at 01:35:37PM +0200, Henning Schild wrote:
> > - Unreliable build:
> > -> Network and other unrelated issues to the patch
> > -> Contains expected to fail tests
>
> Agreed, i stopped running the tests locally because i could never come
> up with the same errors. Actually the CI itself could never come up
> with the same ones .... but it kept failing without giving a real clue
> why.
...
> > -> Giant log file, that makes it difficult to figure out
> > exactly which command or test case caused an issue to reproduce that
> > locally
>
> When i use the CI system from Ilbers i usually carry around a few "fast
> CI" patches on top of my real changes. In there i configure CI to do
> what i want and only build one config to start with. Not elegant but
> works somehow.
Feel free to report problems and / or send patches when your encounter the
issues, otherwise we never know you have one.
With kind regards,
Baurzhan.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 8:10 ` Claudius Heine
@ 2019-05-23 13:43 ` Claudius Heine
2019-05-23 13:56 ` Maxim Yu. Osipov
0 siblings, 1 reply; 17+ messages in thread
From: Claudius Heine @ 2019-05-23 13:43 UTC (permalink / raw)
To: Maxim Yu. Osipov, isar-users
Hi,
On 23/05/2019 10.10, [ext] Claudius Heine wrote:
> Hi,
>
> On 22/05/2019 13.28, [ext] Claudius Heine wrote:
> [...]
>>>
>>>>
>>>>>
>>>>>> - Manually triggering of build jobs
>>>>>> -> After pushing of CI branch, build has to be triggered via
>>>>>> button
>>>>>
>>>>> One may enable such build trigger (I believe that such trigger is
>>>>> enabled for Henning's project). but from my user's experience I
>>>>> prefer to start the build manually.
>>>>
>>>> I normally just push to the ci branch when I want to start tests.
>>>
>>> I've enabled the corresponding options for your projects - please try.
>>
>> Thanks. But I think I should now have two branches for each different
>> build parameter set. So that I don't trigger both builds just for one
>> push.
>
> I pushed a ch/ilbers-ci-fast branch for the fast build.
I have to say the this polling option that jenkins does is suboptimal.
Is there a way to add a git hook that triggers the build exactly when
the commit arrives on github?
Cheers,
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 13:43 ` Claudius Heine
@ 2019-05-23 13:56 ` Maxim Yu. Osipov
2019-05-23 14:36 ` Claudius Heine
0 siblings, 1 reply; 17+ messages in thread
From: Maxim Yu. Osipov @ 2019-05-23 13:56 UTC (permalink / raw)
To: Claudius Heine, isar-users
On 5/23/19 3:43 PM, Claudius Heine wrote:
> Hi,
>
> On 23/05/2019 10.10, [ext] Claudius Heine wrote:
>> Hi,
>>
>> On 22/05/2019 13.28, [ext] Claudius Heine wrote:
>> [...]
>>>>
>>>>>
>>>>>>
>>>>>>> - Manually triggering of build jobs
>>>>>>> -> After pushing of CI branch, build has to be triggered via
>>>>>>> button
>>>>>>
>>>>>> One may enable such build trigger (I believe that such trigger is
>>>>>> enabled for Henning's project). but from my user's experience I
>>>>>> prefer to start the build manually.
>>>>>
>>>>> I normally just push to the ci branch when I want to start tests.
>>>>
>>>> I've enabled the corresponding options for your projects - please try.
>>>
>>> Thanks. But I think I should now have two branches for each different
>>> build parameter set. So that I don't trigger both builds just for one
>>> push.
>>
>> I pushed a ch/ilbers-ci-fast branch for the fast build.
>
> I have to say the this polling option that jenkins does is suboptimal.
> Is there a way to add a git hook that triggers the build exactly when
> the commit arrives on github?
There is an option GitHub hook trigger for GITScm polling:
If Jenkins will receive PUSH GitHub hook from repo defined in Git SCM
section it will trigger Git SCM polling logic. So polling logic in fact
belongs to Git SCM.
Should I enable it for you?
Regards,
Maxim.
>
> Cheers,
> Claudius
>
--
Maxim Osipov
ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn
Germany
+49 (151) 6517 6917
mosipov@ilbers.de
http://ilbers.de/
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [DISCUSSIONS] CI build
2019-05-23 13:56 ` Maxim Yu. Osipov
@ 2019-05-23 14:36 ` Claudius Heine
0 siblings, 0 replies; 17+ messages in thread
From: Claudius Heine @ 2019-05-23 14:36 UTC (permalink / raw)
To: Maxim Yu. Osipov, isar-users
On 23/05/2019 15.56, Maxim Yu. Osipov wrote:
> On 5/23/19 3:43 PM, Claudius Heine wrote:
>> Hi,
>>
>> On 23/05/2019 10.10, [ext] Claudius Heine wrote:
>>> Hi,
>>>
>>> On 22/05/2019 13.28, [ext] Claudius Heine wrote:
>>> [...]
>>>>>
>>>>>>
>>>>>>>
>>>>>>>> - Manually triggering of build jobs
>>>>>>>> -> After pushing of CI branch, build has to be triggered via
>>>>>>>> button
>>>>>>>
>>>>>>> One may enable such build trigger (I believe that such trigger is
>>>>>>> enabled for Henning's project). but from my user's experience I
>>>>>>> prefer to start the build manually.
>>>>>>
>>>>>> I normally just push to the ci branch when I want to start tests.
>>>>>
>>>>> I've enabled the corresponding options for your projects - please try.
>>>>
>>>> Thanks. But I think I should now have two branches for each
>>>> different build parameter set. So that I don't trigger both builds
>>>> just for one push.
>>>
>>> I pushed a ch/ilbers-ci-fast branch for the fast build.
>>
>> I have to say the this polling option that jenkins does is suboptimal.
>> Is there a way to add a git hook that triggers the build exactly when
>> the commit arrives on github?
>
> There is an option GitHub hook trigger for GITScm polling:
>
> If Jenkins will receive PUSH GitHub hook from repo defined in Git SCM
> section it will trigger Git SCM polling logic. So polling logic in fact
> belongs to Git SCM.
>
> Should I enable it for you?
Yes, if you can tell me how to use it.
From what I read, there should be a curl command that I can add to the
github repo hook settings. But I don't know the address I should use and
if I needs some login information etc.
Thanks,
Claudius
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
^ permalink raw reply [flat|nested] 17+ messages in thread
* Jenkins project configuration by user
2019-05-22 7:26 [DISCUSSIONS] CI build Claudius Heine
` (2 preceding siblings ...)
2019-05-23 11:35 ` Henning Schild
@ 2019-05-30 8:29 ` Maxim Yu. Osipov
3 siblings, 0 replies; 17+ messages in thread
From: Maxim Yu. Osipov @ 2019-05-30 8:29 UTC (permalink / raw)
To: Claudius Heine, isar-users
Hi isar-build.org users,
On 5/22/19 9:26 AM, Claudius Heine wrote:
<snip>
> - Not transparent configuration/environment:
> -> parameters with which ci_build.sh is called are not controllable
> from the repository
To address this issue I've added the ability to user to configure his
project - just click button 'Configure' on the left pane of your project
http://isar-build.org:8080/job/<your_project_name>/configure
Here you can change parameters passed to ci_build, tweak build triggers etc.
If you want to initiate the build on push request to your repository
1) Add a webhook in your github isar repository:
Payload URL:
http://ci.isar-build.org:8080/github-webhook/
Content type:
application/json
Secret:
<empty>
Radio-button:
Just the push event
Tick as active.
2) Enable option 'GitHub hook trigger for GITScm polling" in the section
Build Triggers of project's configuration.
Regards,
Maxim.
--
Maxim Osipov
ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn
Germany
+49 (151) 6517 6917
mosipov@ilbers.de
http://ilbers.de/
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2019-05-30 8:29 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-22 7:26 [DISCUSSIONS] CI build Claudius Heine
2019-05-22 8:20 ` Maxim Yu. Osipov
2019-05-22 9:10 ` Claudius Heine
2019-05-22 9:50 ` Maxim Yu. Osipov
2019-05-22 11:28 ` Claudius Heine
2019-05-23 8:10 ` Claudius Heine
2019-05-23 13:43 ` Claudius Heine
2019-05-23 13:56 ` Maxim Yu. Osipov
2019-05-23 14:36 ` Claudius Heine
2019-05-22 19:44 ` Baurzhan Ismagulov
2019-05-23 4:44 ` Jan Kiszka
2019-05-23 8:32 ` Claudius Heine
2019-05-23 8:39 ` Jan Kiszka
2019-05-23 10:58 ` Maxim Yu. Osipov
2019-05-23 11:35 ` Henning Schild
2019-05-23 12:11 ` Baurzhan Ismagulov
2019-05-30 8:29 ` Jenkins project configuration by user Maxim Yu. Osipov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox