Thanks for your summary. Some comments: On Thu, Feb 13, 2020 at 5:16 AM Haitao Liu <liugu...@gmail.com> wrote:
> Apache Jenkins > | Github action > > ============================================================================================================================ > ... > Restrict accounts access to update jenkins configs > | Free to Make PRs to update githubaction workflow > That is not exactly true: accounts access is restricted to create the _Jenkins jobs_. The logic executed in these jobs, once created, is stored in a Jenkinsfile or in Groovy pipeline script, so the workflow can be updated by a PR as in Github. Moreover, if using shared libraries, the logic can reside in another repository, as Greg requested. I don't know if that is possible with Github. > So, I think we could consider to use apache jenkins ci as nightly build > and use github action ci as PR check build accordingly. > I agree with that, but mostly due to apparently saturation of AFS CI service. 1. Apache Jenkins CI for Nightly Build > > There is an existing freestyle NuttX Nightly Build do cron job at > midnight each day. However, it's very simple. And there is still flock > issue to resolve to make parallel build all pass. > > > https://builds.apache.org/view/Incubator%20Projects/job/NuttX-Nightly-Build/ > > Thanks to @Maht, he made multibranch jenkins pipeline PR which would make > the Nightly build more robust. But it may still need some time to switch to > it because of Apache Jenkins access control. The PRs as below: > > https://github.com/apache/incubator-nuttx-testing/pull/2 > > https://github.com/apache/incubator-nuttx/pull/174 > > Well, my multibranch proposal is originally intended to manage PR triggers (each PR is a branch). For nightly, as long there is only one branch now (master), there is less added value. Still, the pipeline logic could be modified to be more "parallel" (to be done, though). Also, there is still travis CI pull request form @yamt, we could integrate > it into incubator-nuttx-testing as maht do. > > https://github.com/apache/incubator-nuttx/pull/183 > > < > https://builds.apache.org/view/Incubator%20Projects/job/NuttX-Nightly-Build/ > > > Yes, I think the idea of having the CI/testing stuff in a separate repo is good, as Greg requested, despite maybe some minimal file info has to be kept in the main repo. But I won't consider it a strong requirement for the short term if achieving it would take a lot of effort to implement outside of the typical usage of Github Actions/CircleCI/TravisCI/etc. 2. Github action CI for Check Build > > I have just make two PRs to incubator-nuttx and inucbator-nuttx-apps > accordingly as below: > > https://github.com/apache/incubator-nuttx/pull/261 > > https://github.com/apache/incubator-nuttx-apps/pull/65 > > The two PRs are not intended to be merged right now. They still need align > to check testlist update under incubator-nuttx-testing. > > For example, Consider have a minimal check testlist set that always run. > > As for github action check build CI, there are still more space to > optimize: > > 1. Matrix builds to allow concurrent jobs and even multi-platorms > > To speed up the check build time, use multiple jobs in github action > workflow to do parallel builds as @btashton and @davids suggest. > That would be a very nice addition, but I am not sure how to do it Github Actions, and have no much time this week to explore. > 2. Use docker images with tools preinstalled > > Now it takes several minitues to install all essential tools in ubuntu vm. > > we may build nuttx with docker images which tools preinstalled in the > future. > @davids suggested to use PX4 Docker images, and I think they are very good to use/reference: https://hub.docker.com/r/px4io/px4-dev-nuttx > Anyway, These are just some thoughts from our previous discussions, > welcome more reviews and feedbacks from community. > Thanks! > Thanks for the effort and count on me if you need some feedback. Cheers, Miguel