Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ecf-dev] Heads up on CI job for building ECF with Tycho

Hi,

* Where are we now?

There is [Bug 493753] to track progress. I've created two jobs on
[Jenkins] that could be triggered by the new Gerrit change and expose
their p2 repository:
• [Maven job], [p2 repository]
• [Freestyle job], [p2 repository]

Both jobs are in silent mode, they will not vote back on submitted
changes yet.

[Bug 493753] https://bugs.eclipse.org/bugs/show_bug.cgi?id=493753

[Jenkins] https://hudson.eclipse.org/ecf/

[Maven job] https://hudson.eclipse.org/ecf/job/ecf-tycho.maven.gerrit/

[p2 repository]
https://hudson.eclipse.org/ecf/job/ecf-tycho.maven.gerrit/lastSuccessfulBuild/artifact/

[Freestyle job]
https://hudson.eclipse.org/ecf/job/ecf-tycho.freestyle.gerrit/

[p2 repository]
https://hudson.eclipse.org/ecf/job/ecf-tycho.freestyle.gerrit/lastSuccessfulBuild/artifact/


* Why two jobs?

[Maven job type] tries to provide Maven-specific configurations and
integrations for different jobs:
• [Building a maven2 project - Jenkins - Jenkins Wiki]
• [Maven Project Plugin - Jenkins - Jenkins Wiki]

Unfortunately, Maven job type knows nothing about [POM-less projects]
(which is a plain Maven project that uses [Maven core extensions]) -
Hudson/Jenkins creates internal representation of the project to build
using its own implementation. There is [JENKINS-30058 - Support Maven
Core Extensions] for Jenkins and none I'm aware of for Hudson ([Bug
408661 - Maven 3 build trigger not working for Tycho projects] is the
only relevant one).

Another (more serious) problem is that Maven job type is actually
deprecated ([this post], for instance) and not actively supported by
both Jenkins and Hudson communities. I'm not sure that support for
POM-less projects will be implemented in the foreseeable future.

That's why I've created a freestyle type job that is free from the
limitations of the Maven job type but requires more initial
configuration and (I'm speculating a little here) support in the
future.


[Maven job type]
https://wiki.jenkins-ci.org/display/JENKINS/Building+a+maven2+project

[Building a maven2 project - Jenkins - Jenkins Wiki]
https://wiki.jenkins-ci.org/display/JENKINS/Building+a+maven2+project

[Maven Project Plugin - Jenkins - Jenkins Wiki]
https://wiki.jenkins-ci.org/display/JENKINS/Maven+Project+Plugin

[POM-less projects]
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds

[Maven core extensions]
http://takari.io/2015/03/19/core-extensions.html

[JENKINS-30058 - Support Maven Core Extensions]
https://issues.jenkins-ci.org/browse/JENKINS-30058

[Bug 408661 - Maven 3 build trigger not working for Tycho projects]
https://bugs.eclipse.org/bugs/show_bug.cgi?id=408661

[this post]
https://groups.google.com/d/msg/jenkinsci-users/MEm6QMAfimM/fq7AfeyrOgAJ


* Where to go?

Either freestyle or maven job type will survive. As I think POM-less
Tycho configuration is the way to go, due to inability to handle
POM-less Maven projects, I'm for freestyle job type. But that's not
(only ;-) ) me who should decide.

Decide on how build will vote on changes.

Disable silent mode and provide feedback to Gerrit change.

Enable Buckminster build and get a 'canonical' version of ECF p2
repository alongside p2 repository built with Tycho. Which may be handy
to debug issues with Tycho build.

-- 
Mykola
https://manandbytes.github.io/



Back to the top