Lee moon soo created ZEPPELIN-2123:

             Summary: Scale-out CI capacity by leveraging individual 
contributor's travis account
                 Key: ZEPPELIN-2123
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-2123
             Project: Zeppelin
          Issue Type: Improvement
            Reporter: Lee moon soo
            Assignee: Lee moon soo

h3. Motivation

Recently INFRA-13469 reduced simultaneous build capacity of Zeppelin project to 
5 from 11.

After that, although https://github.com/apache/zeppelin/pull/2003 reduced CI 
build time by 60%, it's not very difficult to see pullrequests are waiting more 
than 10 hours in the queue to be tested.

It's mainly because of Apache Zeppelin uses ASF's travis account and the same 
account serves all project in ASF. It's easy to guess that there will be tons 
of build requests from various projects in ASF.

By the way, individual contributor fork Apache Zeppelin repository on github to 
make a pullrequest. And it's not very difficult to setup travis for the fork.

If Apache Zeppelin project can leverage all individual contributors travis 
account to build the pullrequest, that'll give many advantages.

 - Individual contributor will have 5 simultaneous build slot on travis.
 - No other project shares the travis slot.
 - Individual contributor can control build - cancel, restart

h3. How it works

1. Individual contributor setup travis on Apache Zeppelin fork. (and turn on 
"Build pushes")
2. Contributor pushes the branch to forked repository
   -> Triggers Travis CI build
3. Contributor creates pullrequest to ApacheZeppelin repository
  -> Triggers Jenkins CI build
4. Jenkins CI build script checks individual contributors Travis CI build 

Jenkins CI build script will not actually build the project but will just check 
contributors Travis CI build status. And Jekins CI build script will run on ASF 
infra (builds.apache.org)

h3. Things to do

Following tasks need to be done.

1. Create build CI script for Jenkins that checks contributor's travis CI
2. Setup Jenkins configuration on builds.apache.org
3. Ask INFRA to turn off pullrequest build on Travis-CI and add Jekins for 
pullrequest build
4. Add travis setup after fork in how to contribute guide.

This message was sent by Atlassian JIRA

Reply via email to