Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cbi-dev] CBI Platform build - pre-meeting notes

Here are my notes from before the meeting.


What I think has to be done:

1) We need to move the platform-aggregator repo to be a platform releng repo.
JunoSR1_RC1_R4 becomes R4_2_maintenance
JunoSR1_RC1_R3 becomes R3_8_maintenance
The Kepler state becomes master ... once we stabliize R4_2_maintenance, we'll have merge the useful pieces into master.
- Thahn/David/Paul

2) we need to make Thahn a releng committer to work on the releng side of this repo. Igor as well.
-Paul

3) we need to apply outstanding CBI-copy repo changes to the real repositories.
Bug 379748 - Pull request for Equinox from CBI and dependent bugs
- Tom/Ian B

These 3 steps will fold in the work in the CBI repos into the main eclipse repos.

The work then continues from there to get CBI build to actually work: https://bugs.eclipse.org/bugs/showdependencytree.cgi?id=372792&hide_resolved=0 Some of these bugs are usecases (output build repo should match our build repo, it should build the product zips) and some are problems encountered while trying to get the build up and running (like Bug 387557 )

Some stats:
Juno SR1 RC1 had 1175 IUs, CBI had 642 IUs

The build repo doesn't have most of the native fragments or tooling IUs in it. It also doesn't contain the tests.


Our division of responsibility (what I think).

The component leads have to be able to determine what's needed (ex, what is the appropriate behaviour when ignoring META-INF/eclipse.inf files). The component leads have to be able to provide analysis of the differences of the cbi output and our regular build.

The EF team (Thahn :-) need to be able to modify the config or provide the modifications to componet repos that get the job done. The component leads then have to consume these changes or work with them to figure out how to make it work.

What contributing to the build would look like

To contribute a build (R4_2_maintenance example), the contributor has to clone or update the aggregator:

git clone -b R4_2_maintenance \
--recurse-submodules \
ssh://git.eclipse.org/gitroot/platform/platform-aggregator.git \
R4_platform-aggregator

Update the component repo to the commits for each repo they want included in the build:

cd R4_platform-aggregator/eclipse.platform.ui
git checkout R4_2_maintenance
git pull # or pick the specific commit you want as your build input
cd ..
git add eclipse.platform.ui
git commit
git push origin HEAD

For nightly builds, we'll still have to figure out some steps:
1) each submodule should be at the tip of its regular branch, like master
2) we use forceContextQualifier somehow to set all of them to the build id, just as today.


Setup and running on build.eclipse.org

Getting CBI running on /shared/eclipse/lts. Set up the environment:

export PATH=/opt/public/common/apache-maven-3.0.4/bin:$PATH
export MAVEN_OPTS=-Xmx1024m
export JAVA_HOME=/opt/public/common/jdk-1.6.x86_64/jre

Set up the BREE environments:

Bug 386649 - configure BREE-specific JRE libraries on build server

- get the ee.zip, unzip it in /shared/eclipse/lts, edit /shared/eclipse/lts/toolchain.xml to fix the directory root, and then copy it to $HOME/.m2

Then clone the repos:

git clone -b JunoSR1_RC1_R4 \
--recurse-submodules \
file:///gitroot/cbi/platform-aggregator.git \
R4_platform-aggregator

git clone \
file:///gitroot/cbi/org.eclipse.cbi.maven.plugins.git


Then install the signing plugin:

cd org.eclipse.cbi.maven.plugins
mvn -f eclipse-jarsigner-plugin/pom.xml \
clean install \
-Dmaven.repo.local=/shared/eclipse/lts/R4_localrepo


Before starting a build, the eclipse-parent and maven-cbi-plugin artifacts must be installed:

mvn -f eclipse-parent/pom.xml \
clean install \
-Dmaven.repo.local=/shared/eclipse/lts/R4_localrepo

mvn -f maven-cbi-plugin/pom.xml \
clean install \
-Dmaven.repo.local=/shared/eclipse/lts/R4_localrepo

Run a build with signing and the comparator:

cd R4_platform-aggregator
vi eclipse-parent/pom.xml
- make sure to set the baselineRepositories element with a URL for the comparator. I set it to file:///home/data/httpd/download.eclipse.org/eclipse/updates/4.2-M-builds/M20120816-1200
mvn -X \
-Peclipse-sign \
clean install \
-Dmaven.test.skip=true \
-Dmaven.repo.local=/shared/eclipse/lts/R4_localrepo >/shared/eclipse/lts/log_r4_$( date +%Y%m%d%H%M%S ).txt 2>&1


Copy out the build output to somewhere useful:


R4_platform-aggregator/eclipse.platform.releng.tychoeclipsebuilder contains the products, like R4_platform-aggregator/eclipse.platform.releng.tychoeclipsebuilder/sdk/target/products/org.eclipse.sdk.ide-linux.gtk.x86_64.tar.gz

The build repository is R4_platform-aggregator/eclipse.platform.repository/target/repository

The automated test zip is in R4_platform-aggregator/TMP/eclipse-junit-tests/target

--
Paul Webster
Hi floor.  Make me a sammich! - GIR

Back to the top