* [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 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 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
* 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-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
* 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