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 "Hudson"

(Redirected page to Jenkins)
 
(46 intermediate revisions by 16 users not shown)
Line 1: Line 1:
= General Information  =
+
#REDIRECT [[Jenkins]]
 
+
The Eclipse Foundation runs a Hudson continuous integration server that Eclipse-hosted projects can take advantage of for their builds. Currently this is hosted here: https://hudson.eclipse.org/ . The Hudson server allows for the execution of Continuous Integration Builds, Nightly Builds, Integration Builds, Release Builds, and Testing. Hudson is maintained by the Eclipse Webmasters.  A Hudson sandbox instance is available for those who like the bleeding edge; however, its stability may suffer due to frequent restarts, untested configurations and upgrades.
+
 
+
* Hudson "Stable" instance: https://hudson.eclipse.org/
+
* Hudson Sandbox instance: https://hudson.eclipse.org/sandbox/
+
 
+
== Migrating to the 'new' Eclipse.org Hudson service ==
+
 
+
If you had a build running on the old Hudson instance (hosted on build.eclipse.org) and you wish to move it to the current Hudson instance, you will need to file a bug against community->hudson with a subject like  'Move job job-name to hudson.eclipse.org'.  Webmaster will then import the job and close the bug.  Please note that the new instance does not provide the same plugins as the previous instance.  You may also need to update your job configuration to account for differences in the Hudson deployment.
+
 
+
== Hudson configuration and tools ==
+
 
+
The Hudson setup uses 3 SLES 11 x86_64 machines (1 master and 2 slaves), with bash as the default shell.  These machines are behind a firewall so any outbound http(s) connections are proxied.
+
 
+
The following global variables are set(identically across installs):
+
 
+
*JVM_OPTS: proxy data (see "Accessing the Internet" below)
+
*ANT_ARGS: proxy data
+
*ANT_OPTS: proxy data
+
 
+
Each node also has a .m2/settings.xml file with the proxy data.
+
 
+
===Slaves and usage===
+
 
+
Currently there are 5 slaves for the Eclipse hudson instance. 
+
 
+
*Hudson-slave1 & Hudson-slave2 - these are the main build nodes for hudson jobs.  You can specify them by name or by using the 'build2' label.
+
*fastlane - this slave is intended for usage during a release train crunch when re-spins may require more capacity than hudson-slave1&2 can provide.  By default jobs should not run here.
+
*mac-tests & windows7tests - these 2 slaves are meant for running UI tests for their respective OS versions.  By default jobs should not run on either slave.  The tools available are:
+
 
+
Windows
+
*CVS 1.11.22
+
*Java 1.6.0_20
+
 
+
Mac OSX
+
*Maven 2.2 (/usr/bin/mvn)
+
*Java 1.5.0_20 (/usr/bin/java)
+
*Ant 1.7.1 (/usr/bin/ant)
+
*CVS 1.11.20 (/usr/bin/cvs)
+
*SVN 1.4.4 (/usr/bin/svn)
+
 
+
===Server Storage===
+
[[Image:Build_infra_layout.png|thumb|Build and Hudson storage layout]]
+
Three tiers of storage are available for storing Workspaces, build artifacts, nightly and release builds.  For optimal build performance and service availability, it is important that you use each storage device according to its intended purpose.
+
 
+
The image on the right illustrates the three storage tiers and their intended purpose.
+
 
+
==Tools(and locations)==
+
 
+
*Maven 2.2.1 (installed automatically)
+
*Maven 3.0 alpha 5 (installed automatically)
+
*Maven 3.0-alpha-5-local (/shared/common/apache-maven-3.0-alpha-5)
+
*Maven 3.0-alpha-6-local (/shared/common/apache-maven-3.0-alpha-6)
+
*Maven 3.0-Beta-1 (/shared/common/apache-maven-3.0-beta-1)
+
 
+
*Sun Java 5 SR 22 64bit (/shared/common/jdk-1.5.0-22.x86_64)
+
*Sun Java 5 R 16 32bit (/shared/common/jdk-1.5.0_16)
+
*Sun Java 5 R 22 64bit (/shared/common/jdk-1.5.0-22.x86_64)
+
*Sun Java 6 R 21 32bit (/shared/common/sun-jdk1.6.0_21_i586)
+
*Sun Java 6 R 21 64bit (/shared/common/sun-jdk1.6.0_21_x64)
+
 
+
*Apache-ant-1.8.1 (/shared/common/apache-ant-1.8.1)
+
*Apache-ant-1.7.1 (/shared/common/apache-ant-1.7.1)
+
*Apache-ant-1.7.0 (/shared/common/apache-ant-1.7.0)
+
*Apache-ant-1.6.5 (/shared/common/apache-ant-1.6.5)
+
 
+
*Headless Buckminster 3.6 (/shared/common/buckminster-3.6)
+
*Buckminster 3.6 Integration (installed automatically)
+
 
+
== Accessing the Internet using Proxy ==
+
 
+
Each Hudson instance has unrestricted access to the Internet by using proxy.eclipse.org.  The shell environment variables below are set for the Hudson build user.  If your build process overrides, or bypasses these variables, you must instruct your tools to use the proxy service to access external sites.
+
 
+
    ftp_proxy=http://proxy.eclipse.org:9898
+
    http_proxy=http://proxy.eclipse.org:9898
+
    https_proxy=http://proxy.eclipse.org:9898
+
    no_proxy='localhost, 127.0.0.1, 172.30.206.0, eclipse.org'
+
 
+
    JAVA_ARGS="-Dhttp.proxyHost=proxy.eclipse.org -Dhttp.proxyPort=9898 -Dhttps.proxyHost=proxy.eclipse.org -Dhttps.proxyPort=9898 -Dhttp.nonProxyHosts=*.eclipse.org -Dhttps.nonProxyHosts=*.eclipse.org -Dftp.proxyHost=proxy.eclipse.org -Dftp.proxyPort=9898 -Dftp.nonProxyHosts=*.eclipse.org"
+
 
+
    JVM_OPTS="-Dhttp.proxyHost=proxy.eclipse.org -Dhttp.proxyPort=9898 -Dhttps.proxyHost=proxy.eclipse.org -Dhttps.proxyPort=9898 -DhttpnonProxyHosts=*.eclipse.org -DhttpsnonProxyHosts=*.eclipse.org -Dftp.proxyHost=proxy.eclipse.org -Dftp.proxyPort=9898 -DftpnonProxyHosts=*.eclipse.org"
+
 
+
    ANT_ARGS="-Dhttp.proxyHost=proxy.eclipse.org -Dhttp.proxyPort=9898 -Dhttps.proxyHost=proxy.eclipse.org -Dhttps.proxyPort=9898 -DhttpnonProxyHosts=*.eclipse.org -DhttpsnonProxyHosts=*.eclipse.org -Dftp.proxyHost=proxy.eclipse.org -Dftp.proxyPort=9898 -DftpnonProxyHosts=*.eclipse.org"
+
 
+
    ANT_OPTS="-Dhttp.proxyHost=proxy.eclipse.org -Dhttp.proxyPort=9898 -Dhttps.proxyHost=proxy.eclipse.org -Dhttps.proxyPort=9898 -DhttpnonProxyHosts=*.eclipse.org -DhttpsnonProxyHosts=*.eclipse.org -Dftp.proxyHost=proxy.eclipse.org -Dftp.proxyPort=9898 -DftpnonProxyHosts=*.eclipse.org"
+
 
+
=== Why use a Proxy? ===
+
 
+
The purpose of the Proxy for Hudson is not for security -- we use firewalls for that.  The proxy is used for three specific reasons:
+
 
+
# The Eclipse Hudson environment is expected to grow to a large number of slaves for builds and for tests.  If each of those slaves requires a routable IP address, the Foundaton will be required to acquire (at cost) additional IP blocks, which further complicates routing and firewall setups.
+
# A proxy will allow us to track and monitor external dependencies that are downloaded at build time, for IP purposes.
+
# A proxy will enable us to implement caching at the proxy level, should the CI mechanism begin to download the entire world and consume too much bandwidth.
+
 
+
 
+
== Additional Troubleshooting Tips ==
+
 
+
=== Buckminster CVS materializing: proxy error: Forbidden ===
+
From Martin Taal, via [http://www.eclipse.org/forums/index.php?t=tree&goto=628738#page_top Forums]:
+
 
+
Buckminster cvs materializing, uses a proxy, how is this configured?
+
 
+
To finish this thread. Michael Wenz pointed me to a change made in the cdo build (to solve this issue), a snippet from
+
his email to me:
+
 
+
But I saw that the CDO build is green again and they still do an Ant call from Hudson that again triggers Buckminster.
+
Previously that build failed with the same exception as ours did or do.
+
 
+
Not sure what these guys changed, but I saw that they added something in their build.xml that seems to fix this. I found
+
2 snippets that appear to be in connection with this:
+
...
+
<condition property="no.proxy" value="${env.no_proxy}, dev.eclipse.org" else="dev.eclipse.org">
+
<isset property="env.no_proxy" />
+
</condition>
+
...
+
 
+
...
+
<!-- Launch the eclipse application -->
+
<java fork="true" jar="${@{app}.launcher}" dir="${@{app}.deploy.dir}" failonerror="true">
+
<env key="no_proxy" value="${no.proxy}" />
+
<properties />
+
<!-- Uncomment to debug <jvmarg value=" -agentlib:jdwp=transport=dt_socket,address=8000,server=y,sus pend=y "/> -->
+
<args />
+
</java>
+
...
+
 
+
== Hudson for Committers  ==
+
 
+
*[[Common Build Infrastructure/Getting Started/Build In Hudson|Build in Hudson]] - Information on requesting jobs, running jobs, setting up builds.
+
*[[Building an RCP application with hudson (Buckminster)|RCP apps with Buckminster on Hudson]]
+
*[[Teneo/Teneo_Build_Setup|Building an Eclipse project (Teneo) with Buckminster and Hudson]]
+
*[[Common Build Infrastructure/Getting Started#In_Hudson|Athena Common Builder on Hudson]]
+
*[[Hudson/Maven|Maven on Hudson]]
+
*[[Hudson/HowTo|How to....]]
+
 
+
== Hudson for Administrators  ==
+
 
+
*[[Common Build Infrastructure/Managing Hudson|Manage Hudson]]
+
*[[Hudson/Admin/UpgradeHudson|Upgrade Hudson]]
+
*[[Hudson/Admin/Installed_Plugins|Installed Plugins]]
+
 
+
=== Duties of Administrators ===
+
 
+
#Hudson upgrades and restarts
+
#New Hudson accounts
+
#Add plugins
+
#Set policy for Hudson usage
+
#Watch changes to this wiki page
+
#Monitor the Hudson Inbox.
+
 
+
=== Who are the Adminstrators ===
+
 
+
* Eclipse Webmasters - webmaster@eclipse.org
+
 
+
== Hudson for Distributed Builds  ==
+
 
+
*Testing on Multiple Platforms
+
*What is the Test-Slave Node?
+
*How do I use the Test Slave Node to run Tests?
+
 
+
[[Category:Releng]]
+
[[Category:Hudson]]
+

Latest revision as of 06:40, 20 August 2020

Redirect to:

Back to the top