Version 16

    Steps for creating new job

     

    • Go to http://hudson.qa.jboss.com (you have to be behind redhat vpn to access the page).

    • Click on New Job

      • Give a job name

      • choose one of

        • Build a free-style software project (more control over execution process)

        • Build a maven2 project (nice for pure maven 2 based jobs)

        • Build multi-configuration project

          • same as free-style project but a matrix of slaves, JDKs and others is excecuted.

        • Monitor an external job (not tried yet)

        • Copy existing job (if you want to start from an existing job)

    • configure the job

      • see hudson help found by clicking "?" for that option, find additional notes here

      • for project type specific options see links above

      • common project options

        • Discard old builds - We suggest to keep last 10 builds but feel free to change it to meet your need.

        • JDK

          • java15_default - default jdk 1.5.0 for the slave you are executing on. Normally SUN but can be Bea, ibm or HP.

          • java16_default - same as above but version 1.6.0

          • openjdk-local - this is the OpenJDK installed locally on every slave that supports that (RHEL5 and Fedora currently)
          • for more specific needs, please choose another one from the list but consider slaves you are running on

        • Tie your builds to a particular machine

          • Always tie your project to a particular label or as an exception to a machine!

          • We have various predefined labels that you should consider using as names are pretty much self-explanatory

          • if no label seems to match your needs, please contact QA team

          • special labels are linux-slim, unix-slim and unix-micro

            • normally you would use unix-micro at all

            • linux-slim you use when your project doesn't need dedicated network resources like port numbers, IPs, etc. generally when you don't fork servers like JBoss AS but not limited to it

            • unix-slim is same as linux-slim but you don't care if it is linux or some other UNIX machine

        • Source Code Management

          • It's pretty obvious. Keep in mind you cannot have cvs and svn sources at the same time.

        • Build Triggers

          • Here you define when does your run

          • Poll SCM is what you normally want, "5 19   " would mean you want your source tree to be checked for modifications every day at 5 minutes past 7pm.

          • Another option is to build periodically

          • you can as well set a job name so this job will execute once the specified job has finished execution

        • Build Environment

          • Abort the build if it's stuck

            • please always set this value

            • set the number of minutes to around one third more than what it takes for the job to complete normally

          • Run Xvnc during build

            • select this option if you require X environment for your tests

          • Kill stale processes when build is done

            • Please always select this option if you are not tied to -slim slave. In the future we hope to have it by default where needed

        • Build (see project type specific pages above)

        • Post-build Actions

          • Archive the artifacts

            • here you define patterns for archiving artifacts generate by the build

            • please consider setting "Discard all but the last successful artifact to save disk space" in advanced section if you don't really need all artifacts in history.

          • Build other projects

            • Here you set jobs to build after this one finishes. Its the oposit of the "Build after other projects are built" and changes the selected jobs' configuration automatically.

          • Publish build

            • TODO

        • Other important notes

          • Once you have configured, you can force a build right away or wait for triggers to kick in.

          • For any help, look at  HudsonTroubleshooting, then please send a mail to jboss-qa-internal@redhat.com.

          • Stale Processes - Please take extra care to not leave stale processes after build. From my experience the issue "can't delete file /<some path>/.nfs<something>" appears when there are stale processes having these temporary files opened. Be especially careful when using -slim (dedicated to execute fast more simple builds) slaves because our kill plug-in can't work there.

          • Environment for jobs that you can use

            • for installed software on every slave, please look at AddingSlaveToMasterInHudson -> "requirements for" section.

              • java, ant, maven, svn 1.4.x, cvs, vncserver in path

              • 2 test IPs

            • Environment variables pointing to important locations

              • MYTESTIP_1 and MYTESTIP_2 storing the test IPs you can use to bind to

              • MCAST_ADDR storing an IPv4 multicast group address

              • HUDSON_CONFIG_DIR - directory where hudson configuration resides (subversion repo managed); all job configuration is good to be kept there

              • HUDSON_STATIC_ENV - directory to store files that don't change with every build (for example if you manage a kind of library repository or something)

              • COMMON_TOOLS - where platform independent tools are located (rarely used by users)

              • NATIVE_TOOLS - where platform dependent tools are located (rarely used by users)

              • SOURCE_REPO  - where some tools' sources and binaries are available (to save long network downloads)

              • SEP and PSEP - separator ("/" or "\") and path separator (":" or ";") (rarely used)

              • MAVEN_OPTS and ANT_OPTS - should define sane java options for most use cases

            • You can use these variables putting in configuration for your jobs like $. Ask in jboss-qa-internal for more about the feature.

            • For other convenience configuration see project types' pages above.

    Project notes

    Individual projects

    Common useful stuff