Difference between revisions of "Documentation/4.1/Developers/Factory"

From Slicer Wiki
Jump to: navigation, search
m (Text replacement - "slicerWiki/index.php" to "wiki")
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
<noinclude>{{documentation/versioncheck}}</noinclude>
 
=Overview=
 
=Overview=
  
Line 7: Line 8:
 
==Required factory components==
 
==Required factory components==
  
See [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].
+
See [http://www.slicer.org/wiki/Documentation/4.1/Developers/Tutorials/DashboardSetup dashboard prerequisites].
  
 
=Host=
 
=Host=
Line 25: Line 26:
 
</pre>
 
</pre>
  
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  An example of an entry in this script is as follows:
+
The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts.  The second is a bash script which runs all of the nightly builds done by the Mac OS X factory.  The rest correspond to all the continuous builds.  An example of an entry in the bash script is as follows:
 
<pre>
 
<pre>
 
open -a x11
 
open -a x11
Line 44: Line 45:
  
 
The virtual  machines are run using the Parallels tool.
 
The virtual  machines are run using the Parallels tool.
 +
 +
==Hardware==
 +
 +
===Processor===
 +
* 2 x 2.93 GHz 6-Core Intel Xeon
 +
 +
===Graphics Card===
 +
* Chipset Model: ATI Radeon HD 5770
 +
* Type: GPU
 +
* Bus PCIe
 +
* VRAM (total): 1024MB
 +
* EFI Driver Version: 01.00.436
 +
 +
===Memory===
 +
* 8 x 4GB = 32GB Memory
 +
* Type: DDR3 ECC
 +
* Speed: 1333 MHz
  
 
=VM: Linux=
 
=VM: Linux=
Line 54: Line 72:
 
The scripts on this VM are very similar to those on the Host.
 
The scripts on this VM are very similar to those on the Host.
  
 +
==Known issues==
 +
This VM is run using Parallel.  The "Parallel Tools" have been disabled because they were crashing X.  Now GLX is missing, which is causing the following errors:
 +
<pre>
 +
Xlib:  extension "GLX" missing on display ":0.0".
 +
</pre>
 +
 +
These errors occasionally cause tests to fail on the dashboards.
 +
 +
This machine is accessible through SSH and remote VNC.  It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host.  Do not try to connect through VNC to this machine on the Host.
  
 
=VM: Windows 7=
 
=VM: Windows 7=
Line 76: Line 103:
 
Note that in this case, the -C option is required to specify the build type.
 
Note that in this case, the -C option is required to specify the build type.
  
Also, keep in mind the [http://www.slicer.org/slicerWiki/index.php/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.
+
Also, keep in mind the [http://www.slicer.org/wiki/Documentation/4.1/Developers/Tutorials/DashboardSetup#Remarks remarks] about building a dashboard on a Windows machine.  These all apply here.
 +
 
 +
This machine may be accessed via VNC through its static IP or through the Host.

Latest revision as of 17:04, 21 November 2019

Home < Documentation < 4.1 < Developers < Factory

For the latest Slicer developers documentation, visit the Nightly page.

Overview

The Slicer factory machine is maintained by Kitware and produces dashboard builds of many software projects, including nightly, continuous, and packaged versions of Slicer and its approved extensions. See the Slicer4 dashboard.

These builds are generated every day on three different operating systems: Windows 7, Mac OS X, and Linux. Because it is not legal to run any version of Mac OS X on a virtual machine (unless its host also runs Mac OS X), the host OS is Mac OS X, and the Windows and Linux builds are run within this machine as virtual machines.

Required factory components

See dashboard prerequisites.

Host

The factory machine runs Mac OS X v10.6.8, Snow Leopard.

  • CMake version: 2.8.8
  • GCC version: i686-apple-darwin10-gcc-4.2.1
  • Tasks scheduled using cron

The output of

crontab -l

on the factory machine is as follows:

55 23 * * * cd /Users/kitware/DashboardScripts && /usr/bin/cvs -q up -dAP
0 0 * * * /Users/kitware/DashboardScripts/factory.sh > /Users/kitware/Dashboards/Logs/factory.log 2>&1
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_CTKAppLauncher_release_continuous.cmake > /Users/kitware/Dashboards/Logs/factory-64bits_CTKAppLauncher_release_continuous.log 2>&1
0 9 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicer4_release_continuous.cmake > /Users/kitware/Dashboards/Logs/factory-64bits_slicer4_release_continuous.log 2>&1
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_release_continuous.cmake > /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_release_continuous.log 2>&1
0 10 * * * /Applications/CMake\ 2.8-8.app/Contents/bin/ctest -V -VV -S /Users/kitware/DashboardScripts/factory-64bits_slicerextensions_411_release_continuous.cmake > /Users/kitware/Dashboards/Logs/factory-64bits_slicerextensions_411_release_continuous.log 2>&1

The first tab is a command to update the cvs repository storing all of Kitware's dashboard scripts. The second is a bash script which runs all of the nightly builds done by the Mac OS X factory. The rest correspond to all the continuous builds. An example of an entry in the bash script is as follows:

open -a x11
export DISPLAY=:0.0 # just DISPLAY=:0.0 without export is not enough
export PATH=:/usr/local/git/bin:$PATH

CTEST=/Applications/CMake\ 2.8-8.app/Contents/bin/ctest
LOG_DIR=/Users/kitware/Dashboards/Logs
DASHBOARD_SCRIPTS_DIR=/Users/kitware/DashboardScripts

# Nightly build of CTKAppLauncher
"$CTEST" -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_CTKAppLauncher_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_CTKAppLauncher_release_nightly.log

# Nightly build of slicer
"$CTEST" -S $DASHBOARD_SCRIPTS_DIR/factory-64bits_slicer4_release_nightly.cmake -VV -O $LOG_DIR/factory-64bits_slicer4_release_nightly.log

The virtual machines are run using the Parallels tool.

Hardware

Processor

  • 2 x 2.93 GHz 6-Core Intel Xeon

Graphics Card

  • Chipset Model: ATI Radeon HD 5770
  • Type: GPU
  • Bus PCIe
  • VRAM (total): 1024MB
  • EFI Driver Version: 01.00.436

Memory

  • 8 x 4GB = 32GB Memory
  • Type: DDR3 ECC
  • Speed: 1333 MHz

VM: Linux

This VM runs Ubuntu 10.04 LTS

  • CMake version: 2.8.8
  • GCC version: Ubuntu 4.4.3-4ubuntu5.1
  • Tasks scheduled using cron

The scripts on this VM are very similar to those on the Host.

Known issues

This VM is run using Parallel. The "Parallel Tools" have been disabled because they were crashing X. Now GLX is missing, which is causing the following errors:

Xlib:  extension "GLX" missing on display ":0.0".

These errors occasionally cause tests to fail on the dashboards.

This machine is accessible through SSH and remote VNC. It has been configured with its own static IP, and should be accessed by VNC through this IP instead of through a VNC connection on the Mac Host. Do not try to connect through VNC to this machine on the Host.

VM: Windows 7

This VM runs Windows 7 Service Pack 1 (Build 7601) on an x86 platform.

  • CMake version: 2.8.8
  • Compiler: VS2008 (cmake --help will provide the correct spelling of CTEST_CMAKE_GENERATOR. On this machine, it is set as follows
 set(CTEST_CMAKE_GENERATOR "Visual Studio 9 2008 Win64") 
  • Tasks are scheduled using the Windows Task Scheduler (Start->All Programs->Accessories->System Tools->Task Scheduler)

On Windows, instead of bash, we use batch scripts comprised of commands to call ctest to run all the nightly scripts. factory-win7.bat looks like this:

#REM Nightly build of CTKAppLauncher vs2008 32bits
"C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe" -S "C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.cmake" -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_CTKAppLauncher_release_nightly.txt

#REM Nightly build of slicer vs2008 32bits
"C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe" -S "C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicer4_release_nightly.cmake" -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicer4_release_nightly.txt

#REM Nightly build of slicer extensions testing vs2008 32bits
"C:\D\Support\cmake-2.8.8-win32-x86\bin\ctest.exe" -S "C:\Dashboards\DashboardScripts\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.cmake" -C Release -VV -O C:\D\Logs\factory-win7-vs2008-32bits_slicerextensions_testing_release_nightly.txt

Note that in this case, the -C option is required to specify the build type.

Also, keep in mind the remarks about building a dashboard on a Windows machine. These all apply here.

This machine may be accessed via VNC through its static IP or through the Host.