Hi,

> Currently all of the workers are running within docker daemons,
> so all of the images are cached once they are pulled to a docker
> daemon. The `worker_preparation` takes only 3 seconds:
> https://ci.ursalabs.org/#/builders/66/builds/2157

Great!

> but the package
> build scripts needs to be ported to either crossbow or ursabot or the
> new gitlab CI.

I can work on this when we decide our approach.

> Here is a PR which passes `--runtime=nvidia` option to the docker run
> command, thus making CUDA enabled tests possible on buildbot's
> docker workers: https://github.com/ursa-labs/ursabot/pull/118

I want to use it for https://github.com/apache/arrow/pull/4735

> We can also maintain our buildbot configuration in apache/arrow
> similarly, but with a more flexible python based DSL.

I like this approach. Because source code and how to test it
should be the same place. If source code is changed, how to
test may be changed too.


Thanks,
--
kou

In <CAHM19a6Gz=ovst5caxfuunu4jr3-sea3-tksrztibftod9l...@mail.gmail.com>
  "Re: [DISCUSS] Ongoing Travis CI service degradation" on Sun, 30 Jun 2019 
21:46:42 +0200,
  Krisztián Szűcs <szucs.kriszt...@gmail.com> wrote:

> On Sun, Jun 30, 2019 at 12:03 AM Sutou Kouhei <k...@clear-code.com> wrote:
> 
>> Hi,
>>
>> How about creating a mirror repository on
>> https://gitlab.com/ only to run CI jobs?
>>
>> This is an idea that is described in
>> https://issues.apache.org/jira/browse/ARROW-5673 .
>>
> I do agree that We should investigate the features provided by
> GitLab. Buildbot might not be so familiar to others, so I'm trying
> to provide some details to see how it compares to GitLab CI.
> 
>>
>> GitLab CI can attach external workers. So we can increase CI
>> capacity by adding our new workers. GitLab also provides
>> Docker registry. It means that we can cache built Docker
>> images for our CI. It will reduce CI time.
>>
> Currently all of the workers are running within docker daemons,
> so all of the images are cached once they are pulled to a docker
> daemon. The `worker_preparation` takes only 3 seconds:
> https://ci.ursalabs.org/#/builders/66/builds/2157
> 
>>
>> The feature to create a mirror repository for CI isn't
>> included in the Free tier on https://gitlab.com/ . But
>> https://gitlab.com/ provides the Gold tier features to open
>> source project:
>> https://about.gitlab.com/solutions/github/#open-source-projects
>> So we can use this feature.
>>
>>
>> Here are advantages I think to use GitLab CI:
>>
>>   * We can increase CI capacity by adding our new workers.
>>     * GitLab Runner (CI job runner) can work on GNU/Linux, macOS
>>       and Windows: https://docs.gitlab.com/runner/#requirements
>>       It means that we can increase CI capacity of all of them.
>>
> The same is true for buildbot, the workers are basically python twisted
> applications, so we can host them on any platform.
> 
>>
>>   * We can reduce CI time by caching built Docker images.
>>     * It will reduce package build job time especially.
>>
> As I mentioned above the same is true for buildbot, but the package
> build scripts needs to be ported to either crossbow or ursabot or the
> new gitlab CI.
> Mentioning crossbow, I've recently added support for azure pipelines
> and circleci. For the docker tests (which are running the docker-compose
> commands) we could add a gitlab specific template yml to test gitlab's
> docker capabilities, see the current templates at
> https://github.com/apache/arrow/tree/master/dev/tasks/docker-tests
> 
>>
>>   * We can run CUDA related tests in CI by adding CUDA
>>     enabled workers.
>>
> Here is a PR which passes `--runtime=nvidia` option to the docker run
> command, thus making CUDA enabled tests possible on buildbot's
> docker workers: https://github.com/ursa-labs/ursabot/pull/118
> 
>>
>>   * We can manage CI jobs in https://github.com/apache/arrow
>>     repository.
>>     * GitLab CI uses .gitlab-ci.yml like .travis.yml for
>>       Travis CI.
>>
> We can also maintain our buildbot configuration in apache/arrow
> similarly, but with a more flexible python based DSL.
> 
>>
>>
>> If we create a mirror repository for CI on
>> https://gitlab.com/ , https://gitlab.com/ursa-labs/arrow
>> will be a good URL.
>>
>>
>> Thanks,
>> --
>> kou
>>
>> In <CAJPUwMBpxzCLZEM2=wwb+necdwz0z0kjd5egss3uqoiirk-...@mail.gmail.com>
>>   "Re: [DISCUSS] Ongoing Travis CI service degradation" on Sat, 29 Jun
>> 2019 14:54:19 -0500,
>>   Wes McKinney <wesmck...@gmail.com> wrote:
>>
>> > hi Rok,
>> >
>> > I would guess that GitHub Actions will have the same resource and
>> > hardware limitations that Travis CI and Appveyor currently have, as
>> > well as organization-level resource contention with the rest of the
>> > ASF.
>> >
>> > We need to have dedicated, powerful hardware (more cores, more RAM),
>> > with more capabilities (architectures other than x86, and with GPUs),
>> > that can run jobs longer than 50 minutes, with the ability to scale up
>> > as the project grows in # of contributions per month. In the past
>> > month Arrow had 4300 hours of builds on Travis CI. What will happen
>> > when we need 10,000 or more hours per month to verify all of our
>> > patches? At the current rapid rate of project growth it is only a
>> > matter of time.
>> >
>> > I made a graph of commits to master by month:
>> >
>> > https://imgur.com/a/02TtGXx
>> >
>> > With nearly ~300 commits in the month of June alone, it begs the
>> > question how to support 500 commits per month, or 1000.
>> >
>> > - Wes
>> >
>> >
>> >
>> > On Sat, Jun 29, 2019 at 5:19 AM Rok Mihevc <rok.mih...@gmail.com> wrote:
>> >>
>> >> GitHub Actions are currently in limited public beta and appear to be
>> >> similar to GitLab CI: https://github.com/features/actions
>> >> More here: https://help.github.com/en/articles/about-github-actions
>> >>
>> >> Rok
>> >>
>> >> On Fri, Jun 28, 2019 at 7:06 PM Wes McKinney <wesmck...@gmail.com>
>> wrote:
>> >>
>> >> > Based on the discussion in
>> >> > https://issues.apache.org/jira/browse/INFRA-18533 it does not appear
>> >> > to be ASF Infra's inclination to allow projects to donate money to the
>> >> > Foundation to get more build resources on Travis CI. Our likely only
>> >> > solution is going to be to reduce our dependence on Travis CI. In the
>> >> > short term, I would say that the sooner we can migrate all of our
>> >> > Linux builds to docker-compose form to aid in this transition, the
>> >> > better
>> >> >
>> >> > We are hiring in our organization (Ursa Labs) for a dedicated role to
>> >> > support CI and development lifecycle automation (packaging,
>> >> > benchmarking, releases, etc.) in the Apache Arrow project, so I hope
>> >> > that we can provide even more help to resolve these issues in the
>> >> > future than we already are
>> >> >
>> >> > On Wed, Jun 26, 2019 at 11:35 AM Antoine Pitrou <anto...@python.org>
>> >> > wrote:
>> >> > >
>> >> > >
>> >> > > Also note that the situation with AppVeyor isn't much better.
>> >> > >
>> >> > > Any "free as in beer" CI service is probably too capacity-limited
>> for
>> >> > > our needs now, unless it allows private workers (which apparently
>> Gitlab
>> >> > > CI does).
>> >> > >
>> >> > > Regards
>> >> > >
>> >> > > Antoine.
>> >> > >
>> >> > >
>> >> > > Le 26/06/2019 à 18:32, Wes McKinney a écrit :
>> >> > > > It seems that there is intermittent Apache-wide degradation of
>> Travis
>> >> > > > CI services -- I was looking at https://travis-ci.org/apache
>> today and
>> >> > > > there appeared to be a stretch of 3-4 hours where no queued
>> builds on
>> >> > > > github.com/apache were running at all. I initially thought that
>> the
>> >> > > > issue was contention with other Apache projects but even with
>> >> > > > round-robin allocation and a concurrency limit (e.g. no Apache
>> project
>> >> > > > having more than 5-6 concurrent builds) that wouldn't explain why
>> NO
>> >> > > > builds are running.
>> >> > > >
>> >> > > > This is obviously disturbing given how reliant we are on Travis
>> CI to
>> >> > > > validate patches to be merged.
>> >> > > >
>> >> > > > I've opened a support ticket with Travis CI to see if they can
>> provide
>> >> > > > some insight into what's going on. There is also an INFRA ticket
>> where
>> >> > > > other projects have reported some similar experiences
>> >> > > >
>> >> > > > https://issues.apache.org/jira/browse/INFRA-18533
>> >> > > >
>> >> > > > As a meta-comment, at some point Apache Arrow is going to need to
>> move
>> >> > > > off of public CI services for patch validation so that we can have
>> >> > > > unilateral control over scaling our build / test resources as the
>> >> > > > community grows larger. As the most active merger of patches (I
>> have
>> >> > > > merged over 50% of pull requests over the project's history) this
>> >> > > > affects me greatly as I am often monitoring builds on many open
>> PRs so
>> >> > > > that I can merge them as soon as possible. We are often resorting
>> to
>> >> > > > builds on contributor's forks (assuming they have enabled Travis
>> CI /
>> >> > > > Appveyor)
>> >> > > >
>> >> > > > As some context around Travis CI in particular, in January Travis
>> CI
>> >> > > > was acquired by Idera, a private equity (I think?) developer tools
>> >> > > > conglomerate. It's likely that we're seeing some "maximize profit,
>> >> > > > minimize costs" behavior in play, so the recent experience could
>> >> > > > become the new normal.
>> >> > > >
>> >> > > > - Wes
>> >> > > >
>> >> >
>>

Reply via email to