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 "Common Build Infrastructure/Publishing"

m (use common promote.xml, not per-project wrapper)
Line 21: Line 21:
 
  # daily N builds
 
  # daily N builds
 
  40 15 * * * /opt/public/common/apache-ant-1.7.1/bin/ant -f
 
  40 15 * * * /opt/public/common/apache-ant-1.7.1/bin/ant -f
   /opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote.xml
+
   /opt/public/cbi/build/org.eclipse.dash.common.releng/promote.xml
 
     -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote-N.properties
 
     -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote-N.properties
 
       2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-nightly-Ganymede-promo.txt
 
       2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-nightly-Ganymede-promo.txt
Line 27: Line 27:
 
  # weekly I build
 
  # weekly I build
 
  00 16 * * 2 /opt/public/common/apache-ant-1.7.1/bin/ant -f
 
  00 16 * * 2 /opt/public/common/apache-ant-1.7.1/bin/ant -f
   /opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-integration-Ganymede/workspace/build/org.eclipse.ve.releng/promote.xml
+
   /opt/public/cbi/build/org.eclipse.dash.common.releng/promote.xml
 
     -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-integration-Ganymede/workspace/build/org.eclipse.ve.releng/promote-I.properties
 
     -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-integration-Ganymede/workspace/build/org.eclipse.ve.releng/promote-I.properties
 
       2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-integration-Ganymede-promo.txt
 
       2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-integration-Ganymede-promo.txt
Line 34: Line 34:
  
 
In addition to publishing your zips, the promote.xml script also unpacks your Update zip into the path you specify, so you will have a daily/weekly up to date update site.
 
In addition to publishing your zips, the promote.xml script also unpacks your Update zip into the path you specify, so you will have a daily/weekly up to date update site.
 +
 +
Note: if you want to customize what your promote process actually does, you can create your own promote.xml and call it thus:
 +
 +
# daily N builds
 +
40 15 * * * /opt/public/common/apache-ant-1.7.1/bin/ant -f
 +
  /opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote.xml
 +
    -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote-N.properties
 +
      2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-nightly-Ganymede-promo.txt
 +
 +
  
 
===References===
 
===References===

Revision as of 19:42, 1 September 2009

OK, so you've built your SDK or runtime zip, your examples, your docs, your tests, and a p2 repo / update site. Great. How do you get those bits out to the world?

Well, for the simple case of "built on build.eclipse.org, published over NFS to download.eclipse.org", you can use a simple Ant script, run from your crontab on build.eclipse.org.

  1. Copy sample promote.xml and promote.properties from org.eclipse.ve.releng or other Athana project.
  2. Update the promote.properties to fit your needs.
  3. Add entry in your crontab that will invoke the promote.xml Ant script.

Example: VE Nightly and Integration Builds

Hudson-Config-Parameterized-Build.png

Say you want to run Nightlies every day, and a single Integration build once a week. First, set up two jobs in Hudson:

  1. https://build.eclipse.org/hudson/view/Athena%20CBI/job/cbi-ve-1.4-nightly-Ganymede/
  2. https://build.eclipse.org/hudson/view/Athena%20CBI/job/cbi-ve-1.4-integration-Ganymede/

(To save time, create the Nightly job, then copy it to produce the Integration build, passing in slightly different parameters like BUILDTYPE = N or BUILDTYPE = I.)

Next, ssh to build.eclipse.org using your committer id and type crontab -e to create crontab entries which match the frequency of your N and I builds. In this example, the latest Nightly VE build will be published every day at 15h40 EST. The latest Integration will be published every Tuesday at 16h00 EST. Note that the promote.xml is identical, but the properties file differs.

# daily N builds
40 15 * * * /opt/public/common/apache-ant-1.7.1/bin/ant -f
  /opt/public/cbi/build/org.eclipse.dash.common.releng/promote.xml
    -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote-N.properties
      2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-nightly-Ganymede-promo.txt
# weekly I build
00 16 * * 2 /opt/public/common/apache-ant-1.7.1/bin/ant -f
  /opt/public/cbi/build/org.eclipse.dash.common.releng/promote.xml
    -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-integration-Ganymede/workspace/build/org.eclipse.ve.releng/promote-I.properties
      2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-integration-Ganymede-promo.txt

In the N build properties file, we use "add" mode to incrementally publish N builds as they happen. In the I properties file, we use "replace" mode to scrub any accumulated builds and publish only the latest I build. So, once a week, we automatically purge the old garbage and get a fresh build.

In addition to publishing your zips, the promote.xml script also unpacks your Update zip into the path you specify, so you will have a daily/weekly up to date update site.

Note: if you want to customize what your promote process actually does, you can create your own promote.xml and call it thus:

# daily N builds
40 15 * * * /opt/public/common/apache-ant-1.7.1/bin/ant -f
  /opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote.xml
    -Dpromote.properties=/opt/users/hudsonbuild/.hudson/jobs/cbi-ve-1.4-nightly-Ganymede/workspace/build/org.eclipse.ve.releng/promote-N.properties
      2>/dev/null 1> ~/promo_logs/cbi-ve-1.4-nightly-Ganymede-promo.txt


References

Copyright © Eclipse Foundation, Inc. All Rights Reserved.