On Thursday 29 September 2016 11:56:13 Robert Munteanu wrote:
> Hi,
> 
> (@Stefan - thanks for summing up what we discussed and following up on
> the dev list)

+1 indeed, much appreciated (also all the work done for and at adaptTo())!

> This is mostly done for the 'main' build, I'm still ironing out some
> dependency issues between jobs(1) but should be stable.
> 
> I'll disable the sling-trunk-1.8 job and see how well this setup runs
> for a couple of days and then move on the contrib and sample trees.
> 
> Olli, AFAICT the karaf part does not have a Jenkins build set up ATM.

Right. I moved it out of contrib next to launchpad.

> Do you want me to set per-module build jobs for the Karaf build as
> well?

Yes, please. Didn't look into build job before holidays because of used 
bundles under vote (in features).

Thanks, Robert!

O.

> On Wed, 2016-09-28 at 22:52 +0000, Stefan Seifert wrote:
> > discussed at the Sling Committer Round Table @ adaptTo() 2016
> > 
> > we all agreed that we need CI build individually per module/bundle,
> > not a big build for all bundles at once.
> > 
> > benefits:
> > - much faster feedback in case of a broken build, and much more
> > specific
> > - if one module is broken only it's own CI build is affected, all
> > other are still green
> > - CI build for one module is much faster, leading to much shorter
> > debugging cycles in case of problems
> > - it's much easier to use tools like travis without having to work
> > around build time and log output size limitations
> > 
> > alternatives discussed:
> > - we were very unhappy with the apache Jenkins lately, but the reason
> > may be that the single full CI build was just too big and fragile
> > - travis would be a simple option to use esp. when sling is migrated
> > to git and we have one single git repo per module. bertrand pointed
> > out there is an official support from ASF to use travis.
> > - we could ask infra to support us with our own jenkins instance we
> > maintain ourselves. but we do not want to go this way due to its
> > maintance efforts unless there is no other way.
> > - we decided to stick with the ASF Jenkins for now, and got the way
> > to CI builds for each module which robert has already started in
> > SLING-6061
> > 
> > robert currently uses the jenkins job DSL plugin to auto-generate new
> > jobs and update existing jobs to the current job definition. the
> > source script and job definition template is maintained in svn, as
> > soon as this is changed all auto-generated jobs get updated. and
> > alternative would be to use the Jenkins pipeline plugin, but
> > currently we think creating individual jobs is easier for us to
> > understand and maintain.
> > 
> > some requirements for the ci build ans integration:
> > 
> > - it would be nice to have a CI build notification within the github
> > mirrors of the git modules showing red/green status on each commit
> > (which is available e.g. for travis - is it possible with the ASF
> > Jenkins as well?)
> 
> This is a bit linked to the Github migration, but the build status
> plugin is enabled for the ASF jenkins instance, so we can reference it.
> 
> We would still need to auto-generate a README file for each modules
> referencing the active build jobs.
> 
> > - if new branches are created or PRs are submitted a CI build should
> > run for them as well, reporting it's status in the github views
> 
> This is doable once we move to Github with the current setup.
> 
> Once thing I haven't fully figured out yet is show to test such a setup
> including the Sling Launchpad tests ( which would be nice ).
> 
> The pipeline approach might be better suited here, but let's see once
> we move to git. The benefit of using the dsl plugin is that I can
> change the job type (losing job history though ).
> 
> > - the CI build should run for the supported JDKs for each module,
> > e.g. java7+java8 or java8-only
> 
> This is already solved in the current setup.
> 
> > - from the git project it the Jenkins CI job should be easy found. if
> > a common naming scheme for the Jenkins jobs is used which e.g.
> > include the git repo name this should be easy.
> 
> Yes, definitely doable.
> 
> > - each CI job has to deploy the current module's snapshot to the
> > apache maven snapshot repo, to make it available to other builds.
> 
> Solved in the current setup, and if we have multiple jobs for various
> JDK versions only the one with the lowest JDK version is deployed, for
> maximum compatibility.
> 
> Thanks,
> 
> Robert
> 
> 1 - the dependencies are mostly inferred automatically by the maven
> plugin supplied by Jenkins, but at the moment it's not able to detect
> when a module is referenced in a launchpad via the provisioning module.
> I will establish module → launchpad dependencies manually for now, with
> a wide approach of 'modules in bundles/ and installer/ will trigger an
> org.apache.sling.launchpad build' . We'll see if we need something more
> fine-grained.


Reply via email to