Jump to: navigation, search

Difference between revisions of "Nebula/Builds"

(Hudson)
(Jenkins)
 
(13 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
Nebula uses Maven Tycho to run its build  
 
Nebula uses Maven Tycho to run its build  
  
== Maven / Tycho ==
+
== Builds ==
Building with Maven and Tycho requires Java and Maven3 to be installed on your computer and a POM file (pom.xml).
+
Nebula has 2 separate projects : '''Release''' for stable widgets and '''Incubation''' for widgets which are work in progress or unmaintained.
A POM file is a project definition and must be located at the root of each module. This file contains everything maven needs to build, package, test, run reports, ... the project.
+
  
Each Nebula widget needs this file, but in order to reduce the amount of configuration required, we use a parent POM which contains all common configuration.
+
Running these build requires to check-out the full Nebula repository, to go into the selected build folder and run. For example:
This special project must be installed locally before building a widget.
+
  
checkout org.eclipse.nebula.nebula-parent and run maven in this project's folder :
+
  cd releng/org.eclipse.nebula.nebula-release
 +
  mvn verify (or ''install'' to install in the local maven repo)
  
<code>mvn install</code>
+
  cd releng/org.eclipse.nebula.nebula-incubation
 +
  mvn verify (or ''install'' to install in the local maven repo)
  
Note : when running a complete build, this project is automatically installed.
+
Note: adding the '''integration-test''' parameter runs tests from test-bundles which might fail when running outside of the hudson build environment.
  
A widget pom content :  
+
Building an individual widget requires that '''Nebula is installed in the local maven repo'''. Then run the build in the widget main directory. E.g:  
  
<code>
+
cd widgets/geomap
<?xml version="1.0" encoding="UTF-8"?>
+
mvn verify
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
<modelVersion>4.0.0</modelVersion>
+
+
<parent>
+
<artifactId>nebula-parent</artifactId>
+
<groupId>org.eclipse.nebula</groupId>
+
<version>1.0.0-SNAPSHOT</version>
+
<relativePath>../org.eclipse.nebula.nebula-parent</relativePath>
+
</parent>
+
+
<groupId>org.eclipse.nebula</groupId>
+
<artifactId>org.eclipse.nebula.widgets.gallery</artifactId>
+
<version>0.5.3-SNAPSHOT</version>
+
<packaging>eclipse-plugin</packaging>
+
+
</project>
+
</code>
+
 
+
The only values which require modification are groupId, artifactId and version
+
 
+
Note : that the version number must match the version in MANIFEST.MF. Snapshot means developement version and requires an ending .qualifier in the plugin version.
+
 
+
Building a widget only requires a single command :
+
 
+
<code>mvn install</code>
+
  
 
jar files are then available in the target folder.
 
jar files are then available in the target folder.
  
Tests bundles use the same pom with only a different packaging type (see gallery test plugin).  
+
== Jenkins build after Pull Request==
 +
These jobs are set up to run after the you have opened a pull request.
  
Note : tests run in an osgi environnement which is different from running the tests in PDE. As a result tests may have to be modified to run correctly on both Maven and PDE.
+
https://ci.eclipse.org/nebula/job/nebula.stable.github/
  
== Builds ==
+
https://ci.eclipse.org/nebula/job/nebula.incubation.github/
Nebula has 2 builds : Release for stable widget aiming for a 1.0 release (org.eclipse.swt.nebula.nebula-release) and Incubation (org.eclipse.swt.nebula.nebula-incubation) for widget which are work in progress.
+
  
Running these build requires to check-out the full nebula repository, to go into the selected build folder and run
+
From this page, you can see build results, download jars and view java doc.
  
<code>mvn install integration-test</code>
+
All successful builds are uploaded immediately to the snapshot location.
  
Note: integration-test runs tests from test-bundles
+
== Jenkins build after Master Change ==
 +
These jobs are set up to run after the repository has changed
  
Adding a new widget to one of these build is easy. Once the widget builds with Maven, just add an additionnal module to the build pom :  
+
https://ci.eclipse.org/nebula/job/nebula.stable/
  
<code> <module>../org.eclipse.nebula.widgets.gallery</module></code>
+
https://ci.eclipse.org/nebula/job/nebula.incubation/
 
+
== Hudson ==
+
These jobs are set up to run on Hudson every 5 hours if the repository has changed
+
 
+
https://hudson.eclipse.org/nebula/job/nebula.nebula/
+
 
+
https://hudson.eclipse.org/nebula/job/nebula.incubation/
+
  
 
From this page, you can see build results, download jars and view java doc.  
 
From this page, you can see build results, download jars and view java doc.  
  
Lastest jars are available at these  url
+
All successful builds are uploaded immediately to the snapshot location.
 
+
http://download.eclipse.org/technology/nebula/snapshot
+
 
+
http://download.eclipse.org/technology/nebula/incubation/snapshot
+
 
+
Email notifications : Every Nebula committer has write access to builds configuration on Hudson. Most settings do not need to be changed but email addresses can be added for build event notifications (failures, return to normal)
+
  
== Sonar ==  
+
== Downloads ==
Nebula:
+
The latest snapshot and release locations can be found here.
* Job that triggers Sonar analysis: https://hudson.eclipse.org/sandbox/job/Nebula-Sonar/
+
* Sonar reports: https://dev.eclipse.org/sonar/dashboard/index/org.eclipse.nebula:nebula-release
+
  
Nebula-Incubation:
+
[https://www.eclipse.org/nebula/downloads.php https://www.eclipse.org/nebula/downloads.php]
* Job: https://hudson.eclipse.org/sandbox/job/Nebula.incubation-Sonar/
+
* Sonar reports: https://dev.eclipse.org/sonar/dashboard/index/791
+
  
 
[[Category:Nebula|Build]]
 
[[Category:Nebula|Build]]

Latest revision as of 13:34, 16 August 2018

Summary

Nebula uses Maven Tycho to run its build

Builds

Nebula has 2 separate projects : Release for stable widgets and Incubation for widgets which are work in progress or unmaintained.

Running these build requires to check-out the full Nebula repository, to go into the selected build folder and run. For example:

 cd releng/org.eclipse.nebula.nebula-release
 mvn verify (or install to install in the local maven repo)
 cd releng/org.eclipse.nebula.nebula-incubation
 mvn verify (or install to install in the local maven repo)

Note: adding the integration-test parameter runs tests from test-bundles which might fail when running outside of the hudson build environment.

Building an individual widget requires that Nebula is installed in the local maven repo. Then run the build in the widget main directory. E.g:

cd widgets/geomap
mvn verify

jar files are then available in the target folder.

Jenkins build after Pull Request

These jobs are set up to run after the you have opened a pull request.

https://ci.eclipse.org/nebula/job/nebula.stable.github/

https://ci.eclipse.org/nebula/job/nebula.incubation.github/

From this page, you can see build results, download jars and view java doc.

All successful builds are uploaded immediately to the snapshot location.

Jenkins build after Master Change

These jobs are set up to run after the repository has changed

https://ci.eclipse.org/nebula/job/nebula.stable/

https://ci.eclipse.org/nebula/job/nebula.incubation/

From this page, you can see build results, download jars and view java doc.

All successful builds are uploaded immediately to the snapshot location.

Downloads

The latest snapshot and release locations can be found here.

https://www.eclipse.org/nebula/downloads.php