[ovs-dev] TravisCI needs to be replaced.

Ilya Maximets i.maximets at ovn.org
Mon Nov 23 19:03:08 UTC 2020


TL;DR OVS can not use Travis CI anymore.  So, we need a new CI provider.
GitHub Actions looks like a sane replacement.

As you, probably, noticed our Travis CI builds are taking lots of time to start
and work.  This is because of reduced capacity for travic-ci.org users.

What happened to travis-ci.org?
Travis CI forces everyone to migrate to travic-ci.com.  Their rationale is that
it's easier for them to support one service and provide better support.  Here is
the only place where this info could be found:

Right now travic-ci.org is completely unreliable since it takes too long for
build jobs to even by queued.  They are waiting for days in 'job received'

travic-ci.org will be turned into read-only mode starting on December 31st.

Before that time all users should migrate to travis-ci.com.

Why Open vSwitch project is not able to migrate to travis-ci.com?
In their blog post Travis CI says that they will convert all users who currently
uses their services for free (like OVS) to their "Free" plan.  But what does
it mean?  This means that all these users will have 10.000 credits received for
free and once these credits are gone, we'll need to buy new credits.
I tested this with my own github repo and it turned out that a single OVS build
takes ~2.850 credits. i.e. we have 3 free builds.  They also claim that they're
still very supportive for OSS projects and that such projects could contact
their support and ask for special free OSS-only credits.  OK, I did that.
It turned out that their definition of OSS project is slightly different.
In details, that is what I received in reply to my request for OSS-only credits:

    Thanks for contacting Travis-CI Support! I’d love to help! We offer an
    Open Source/Educational Subscription for free to non-commercial Open Source
    projects. To qualify for an OSS subscription, the project must meet the
    following requirements:
        1. You are a project lead or regular committer (latest commit in the
           last month)
        2. Project must be at least 3 months old and is in active development
           (with regular commits and activity)
        3. Project meets the OSD specification
        4. Project must not be sponsored by a commercial company or organization
           (monetary or with employees paid to work on the project)
        5. Project can not provide commercial services or distribute paid
           versions of the software
    Sounds like you and your project? We’d be very happy to support you. If your
    project does not match these requirements or you have questions, feel free
    to ask!

To be honest, I do not think that any major FOSS project could meet requirement
for not having employees of some company paid to work on the project.  And OVS
clearly doesn't qualify for this.

This means that we're not eligible for OSS-only credits.

Blog link: https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing

The most frustrating part of all this is that they are not making any public
announces and you need to dig up all that information in forums and direct
conversations with their support.

What about paid service?
Well, it's a tough question.  In order to have same level of service as we had
we will need to pay for a plan with 5 concurrent jobs which is 250$/month.
And that is only for main openvswitch repo.  But we also have ovsrobot and
maintainers and contributors who want's to test their work before pushing
to repo/sending patches upstream.  So, this doesn't sound like a good solution
unless someone wants to spend few thousands per month on upstream CI.

What to do?
Easiest solution right now seems to be migration to GitHub Actions.  They are
providing free service for open repositories comparable with what Travis CI
provided.  The main issue here is that GitHub Actions doesn't have support
for Arm.  2 ways to fix that:
 - Use qemu-multiarch containers and test Arm builds in emulation.
   Pros: Generic github runners.  Cons: Might be slow.
 - GitHub Actions has support for external Arm based runners.  So we'll need
   to find someone to host runner on their hardware.
   Pros: Native builds.  Cons: Someone needs to dedicate HW and time.
 - Another CI provider.  If you know free CI provider that could cover Arm,
   please, suggest.
For now, until the end of December we could keep Arm jobs on travic-ci.org
and hope that it will eventually test them.

Immediate actions:
Right now I'm blocked on testing patches since I practically have no CI to
back me up.  So, I'm holding on everything right now to prepare initial version
of GitHub Actions migration.  This doesn't mean that this will definitely
be accepted, but at least this will allow me to work normally.
I'll send patch to ovs-dev as soon as it is ready.

Best regards, Ilya Maximets.

More information about the dev mailing list