Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Mylyn/Build Infrastructure"

Line 10: Line 10:
 
==== Build Jobs ====
 
==== Build Jobs ====
 
* [http://ci.mylyn.org/view/Provisioning/ Provisioning jobs] that provision the test repositories
 
* [http://ci.mylyn.org/view/Provisioning/ Provisioning jobs] that provision the test repositories
* [http://ci.mylyn.org/view/Integration/ Weekly version-specific integration builds] that build and run all integration test fixtures on all supported Eclipse versions
+
* <span style="color:red">'''[*]'''</span> [http://ci.mylyn.org/view/Integration/ Weekly version-specific integration builds] that build and run all integration test fixtures on all supported Eclipse versions
 
* [http://ci.mylyn.org/view/Snapshots/ Nightly test builds] that run one integration test fixture (1 build per connector)
 
* [http://ci.mylyn.org/view/Snapshots/ Nightly test builds] that run one integration test fixture (1 build per connector)
 
* [http://ci.mylyn.org/job/mylyn-all-snapshot/ Nightly mylyn-all-snapshot] that runs all integration test fixtures
 
* [http://ci.mylyn.org/job/mylyn-all-snapshot/ Nightly mylyn-all-snapshot] that runs all integration test fixtures
Line 20: Line 20:
 
* [https://hudson.eclipse.org/mylyn/view/Gerrit/ Gerrit builds] that verify Gerrit reviews. See [[Mylyn/Contributor_Reference#Hudson]] for information about the contributor whitelist.
 
* [https://hudson.eclipse.org/mylyn/view/Gerrit/ Gerrit builds] that verify Gerrit reviews. See [[Mylyn/Contributor_Reference#Hudson]] for information about the contributor whitelist.
 
* [https://hudson.eclipse.org/mylyn/view/Nightlies/ Nightly snapshot builds] that run one integration test fixture and publish nightly snapshots (1 build per connector)
 
* [https://hudson.eclipse.org/mylyn/view/Nightlies/ Nightly snapshot builds] that run one integration test fixture and publish nightly snapshots (1 build per connector)
* [https://hudson.eclipse.org/mylyn/job/mylyn-integration/ Integration build] that builds and runs unit tests (no integration fixtures) against all supported Eclipse versions
+
* <span style="color:red">'''[*]'''</span> [https://hudson.eclipse.org/mylyn/job/mylyn-integration/ Integration build] that builds and runs unit tests (no integration fixtures) against all supported Eclipse versions
 
* [https://hudson.eclipse.org/mylyn/job/mylyn-integration-connectors/ Integration-connectors build] that runs all integration test fixtures
 
* [https://hudson.eclipse.org/mylyn/job/mylyn-integration-connectors/ Integration-connectors build] that runs all integration test fixtures
 
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds] that build and publish releases and trigger the integration builds
 
* [https://hudson.eclipse.org/mylyn/view/Releases/ Release builds] that build and publish releases and trigger the integration builds
Line 27: Line 27:
  
 
The release build for the current release runs weekly, and thus the integration and integration-connectors builds run weekly.
 
The release build for the current release runs weekly, and thus the integration and integration-connectors builds run weekly.
 +
 +
<span style="color:red">'''[*]'''</span> indicates a matrix build
  
 
== Snapshots ==
 
== Snapshots ==
Line 37: Line 39:
  
 
Integration and release builds run against the [http://git.eclipse.org/c/mylyn/org.eclipse.mylyn.all.git/ parent git repository] that includes all sub-projects as submodules.
 
Integration and release builds run against the [http://git.eclipse.org/c/mylyn/org.eclipse.mylyn.all.git/ parent git repository] that includes all sub-projects as submodules.
 +
 +
== Build Target Platforms ==
 +
 +
The matrix builds build Mylyn against different Eclipse versions. The mylyn-eX.Y targets are used to build against the latest Eclipse release in the given stream (e.g. 4.4.2, 4.5) or the latest milestone build of the upcoming release; mylyn-emaintenance is used to build against the latest candidate for the next Eclipse update release (e.g. 4.5.1); mylyn-estaging is used to build against the latest candidate for the next Eclipse major release (e.g. 4.6). The maintenance, staging, and latest X.Y targets build against the latest plugin versions available on the Eclipse platform update site, whereas the released X.Y targets build against specific versions in the release.
 +
 +
Once an update site is available for the upcoming major release, a new target should be created for that release, and axes should be added for that target to the matrix builds marked with <span style="color:red">'''[*]'''</span> above:
 +
* create target by copying the latest and changing the target name and file name
 +
* change Eclipse Platform dependency versions to 0.0.0
 +
Old axes should be removed once they are no longer supported, except for the Indigo axis because it is still the basis for a number of Eclipse-based products.
 +
 +
 +
After RC4 (of a major or an update release), update versions of Eclipse Platform dependencies:
 +
cd ~/releng/bin
 +
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/releases/luna/201409261001/ junit
 +
Copy the desired suggestions to the target file. To get version for org.eclipse.sdk.ide (a product IU)
 +
unzip ~/downloads/releases/luna/201409261001/content.jar; grep "id='org.eclipse.sdk.ide'" content.xml; rm content.xml

Revision as of 19:02, 18 August 2015


This page describes how Mylyn is built and tested and how snapshot and release builds are published.

The Mylyn project uses two Hudson servers with the following major classes of build jobs:

http://ci.mylyn.org/

Hudson instance running on the same server that hosts the test repositories.

Build Jobs

https://hudson.eclipse.org/mylyn/

The Mylyn HIPP. There is some duplication with jobs on ci.mylyn.org because while those jobs are faster (due to co-location with test repositories), keep much longer histories, and tend to be more reliable, they cannot publish artifacts to download.eclipse.org and their test results are not linked from release builds.

Build Jobs

Scheduling

The release build for the current release runs weekly, and thus the integration and integration-connectors builds run weekly.

[*] indicates a matrix build

Snapshots

Nightly snapshots are published to http://download.eclipse.org/mylyn/snapshots/nightly/ by the Nightly builds. The Release builds publish releases and snapshots to http://download.eclipse.org/mylyn/drops. These snapshots are used to build SRs via composite sites like http://download.eclipse.org/mylyn/snapshots/3.14/.

Build Configuration

See Mylyn/FAQ#System_Properties for system properties used to control whether all fixtures are run and whether any are excluded.

Integration and release builds run against the parent git repository that includes all sub-projects as submodules.

Build Target Platforms

The matrix builds build Mylyn against different Eclipse versions. The mylyn-eX.Y targets are used to build against the latest Eclipse release in the given stream (e.g. 4.4.2, 4.5) or the latest milestone build of the upcoming release; mylyn-emaintenance is used to build against the latest candidate for the next Eclipse update release (e.g. 4.5.1); mylyn-estaging is used to build against the latest candidate for the next Eclipse major release (e.g. 4.6). The maintenance, staging, and latest X.Y targets build against the latest plugin versions available on the Eclipse platform update site, whereas the released X.Y targets build against specific versions in the release.

Once an update site is available for the upcoming major release, a new target should be created for that release, and axes should be added for that target to the matrix builds marked with [*] above:

  • create target by copying the latest and changing the target name and file name
  • change Eclipse Platform dependency versions to 0.0.0

Old axes should be removed once they are no longer supported, except for the Indigo axis because it is still the basis for a number of Eclipse-based products.


After RC4 (of a major or an update release), update versions of Eclipse Platform dependencies:

cd ~/releng/bin
./extractVersionsFromUpdateSite.sh ../../org.eclipse.mylyn-target/mylyn-e4.4.target ~/downloads/releases/luna/201409261001/ junit

Copy the desired suggestions to the target file. To get version for org.eclipse.sdk.ide (a product IU)

unzip ~/downloads/releases/luna/201409261001/content.jar; grep "id='org.eclipse.sdk.ide'" content.xml; rm content.xml

Back to the top