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

Hi Mykola,

Thank you for the analysis. I think it is best to use a freestyle project but not go pom-less. I had a discussion today on this bug [1] where i tried to do a pom-less build for Nebula. I found out that it has several drawbacks but no real advantages.Please check out the bug and let me know what you think.

+1 for a freestyle projects
-1 for pom-less
+1 for switching off silent mode
-1 for buckminster, we have it running elsewhere

We want to run the build in several smaller chunks. Our build gets checked in on github here [2] to give you an idea of the complexity ;).

[1] BugÂ493984 - Provide pom-less build for Nebula
[2] https://github.com/ECF/Build/tree/master/jobs

Cheers,

Wim



On Thu, May 19, 2016 at 8:19 AM, Mykola Nikishov <mn@xxxxxxxxx> wrote:
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/

_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev