Difference between revisions of "Continuous Build"

From Octave
Jump to navigation Jump to search
(Overhaul page, describe the Buildbot Worker setup more easy.)
(→‎Systems and Configurations: Update lists of buildbot builders)
 
Line 11: Line 11:
 
! Builder ID !! Hg Version !! System !! Compiler !! Build Options !! Frequency
 
! Builder ID !! Hg Version !! System !! Compiler !! Build Options !! Frequency
 
|-
 
|-
| clang-3.8-debian || default || Debian Testing || Clang 3.8 || Disable GraphicsMagick || Any Change
+
| clang-4.0-debian || default || Debian Testing || Clang 4.0 || || Any Change
 
|-
 
|-
| clang-4.0-debian || default || Debian Testing || Clang 4.0 || || Any Change
+
| stable-clang-4.0-debian || stable || Debian Testing || Clang 4.0 || || Any Change
 
|-
 
|-
 
| clang-5.0-debian || default || Debian Testing || Clang 5.0 || || Any Change
 
| clang-5.0-debian || default || Debian Testing || Clang 5.0 || || Any Change
 +
|-
 +
| stable-clang-5.0-debian || stable || Debian Testing || Clang 5.0 || || Any Change
 
|-
 
|-
 
| clang-fedora || default || Fedora 25 || Clang (system default) || || Any Change
 
| clang-fedora || default || Fedora 25 || Clang (system default) || || Any Change
 
|-
 
|-
| clang-osx || default || OS X || Clang || || Any Change
+
| stable-clang-fedora || stable || Fedora 25 || Clang (system default) || || Any Change
 
|-
 
|-
| gcc-6-debian || default || Debian Testing || GCC 6 || || Any Change
+
| clang-osx (currently inactive) || default || OS X || Clang || || Any Change
 
|-
 
|-
 
| gcc-7-debian || default || Debian Testing || GCC 7 || || Any Change
 
| gcc-7-debian || default || Debian Testing || GCC 7 || || Any Change
 
|-
 
|-
| gcc-7-lto-debian || default || Debian Testing || GCC (system default) || || Any Change
+
| gcc-7-lto-debian || default || Debian Testing || GCC 7 || Enable link time optimization || Any Change
 
|-
 
|-
 
| gcc-fedora || default || Fedora 25 || GCC (system default) || || Any Change
 
| gcc-fedora || default || Fedora 25 || GCC (system default) || || Any Change
Line 32: Line 34:
 
|-
 
|-
 
| no-extras-debian || default || Debian Testing || GCC (system default) || Disable all optional dependencies || Any Change
 
| no-extras-debian || default || Debian Testing || GCC (system default) || Disable all optional dependencies || Any Change
 +
|-
 +
| stable-no-extras-debian || stable || Debian Testing || GCC (system default) || Disable all optional dependencies || Any Change
 
|-
 
|-
 
|}
 
|}
Line 41: Line 45:
 
! Builder ID !! Hg Version !! Build System !! Host System !! Compiler !! Build Options !! Frequency
 
! Builder ID !! Hg Version !! Build System !! Host System !! Compiler !! Build Options !! Frequency
 
|-
 
|-
| mxe-native-all-on-debian || default || Debian Testing || Debian || GCC (system default) || GNU Linux, build all dependencies || Daily
+
| mxe-native-all-on-debian || default || Debian Testing || Debian || GCC (mxe-octave default) || GNU Linux, build all dependencies || Daily
 
|-
 
|-
 
| mxe-native-on-debian || default || Debian Testing || Debian || GCC (system default) || GNU Linux, use system compiler, fontconfig, and X11 libraries || Daily
 
| mxe-native-on-debian || default || Debian Testing || Debian || GCC (system default) || GNU Linux, use system compiler, fontconfig, and X11 libraries || Daily
Line 48: Line 52:
 
|-
 
|-
 
| w32-stable-on-debian || stable || Debian Testing || Windows || GCC (mxe-octave default) || Windows 32 || Daily
 
| w32-stable-on-debian || stable || Debian Testing || Windows || GCC (mxe-octave default) || Windows 32 || Daily
 +
|-
 +
| w32-release-on-debian || release (tarball) || Debian Testing || Windows || GCC (mxe-octave default) || Windows 32 || Daily
 
|-
 
|-
 
| w64-32-on-debian || default || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64 || Daily
 
| w64-32-on-debian || default || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64 || Daily
 
|-
 
|-
 
| w64-32-stable-on-debian || stable || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64 || Daily
 
| w64-32-stable-on-debian || stable || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64 || Daily
 +
|-
 +
| w64-32-release-on-debian || release (tarball) || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64 || Daily
 
|-
 
|-
 
| w64-64-on-debian || default || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64, 64-bit indexing || Daily
 
| w64-64-on-debian || default || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64, 64-bit indexing || Daily
 +
|-
 +
| w64-64-stable-on-debian || stable || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64, 64-bit indexing || Daily
 +
|-
 +
| w64-64-release-on-debian || release (tarball) || Debian Testing || Windows || GCC (mxe-octave default) || Windows 64, 64-bit indexing || Daily
 
|-
 
|-
 
|}
 
|}

Latest revision as of 00:11, 31 July 2020

GNU Octave uses Buildbot to build and test the current development version on multiple systems in a number of different configurations.

Info icon.svg
The current status of the builds may be found at http://buildbot.octave.org:8010/#/waterfall.

Systems and Configurations[edit]

The following systems and configurations are currently covered for Octave builds:

Builder ID Hg Version System Compiler Build Options Frequency
clang-4.0-debian default Debian Testing Clang 4.0 Any Change
stable-clang-4.0-debian stable Debian Testing Clang 4.0 Any Change
clang-5.0-debian default Debian Testing Clang 5.0 Any Change
stable-clang-5.0-debian stable Debian Testing Clang 5.0 Any Change
clang-fedora default Fedora 25 Clang (system default) Any Change
stable-clang-fedora stable Fedora 25 Clang (system default) Any Change
clang-osx (currently inactive) default OS X Clang Any Change
gcc-7-debian default Debian Testing GCC 7 Any Change
gcc-7-lto-debian default Debian Testing GCC 7 Enable link time optimization Any Change
gcc-fedora default Fedora 25 GCC (system default) Any Change
gcc-lto-fedora default Fedora 25 GCC (system default) Enable link time optimization Any Change
no-extras-debian default Debian Testing GCC (system default) Disable all optional dependencies Any Change
stable-no-extras-debian stable Debian Testing GCC (system default) Disable all optional dependencies Any Change

And for mxe-octave:

Builder ID Hg Version Build System Host System Compiler Build Options Frequency
mxe-native-all-on-debian default Debian Testing Debian GCC (mxe-octave default) GNU Linux, build all dependencies Daily
mxe-native-on-debian default Debian Testing Debian GCC (system default) GNU Linux, use system compiler, fontconfig, and X11 libraries Daily
w32-on-debian default Debian Testing Windows GCC (mxe-octave default) Windows 32 Daily
w32-stable-on-debian stable Debian Testing Windows GCC (mxe-octave default) Windows 32 Daily
w32-release-on-debian release (tarball) Debian Testing Windows GCC (mxe-octave default) Windows 32 Daily
w64-32-on-debian default Debian Testing Windows GCC (mxe-octave default) Windows 64 Daily
w64-32-stable-on-debian stable Debian Testing Windows GCC (mxe-octave default) Windows 64 Daily
w64-32-release-on-debian release (tarball) Debian Testing Windows GCC (mxe-octave default) Windows 64 Daily
w64-64-on-debian default Debian Testing Windows GCC (mxe-octave default) Windows 64, 64-bit indexing Daily
w64-64-stable-on-debian stable Debian Testing Windows GCC (mxe-octave default) Windows 64, 64-bit indexing Daily
w64-64-release-on-debian release (tarball) Debian Testing Windows GCC (mxe-octave default) Windows 64, 64-bit indexing Daily

Setup and run a Buildbot Worker[edit]

Your system may be behind a firewall. It does not have to have a distinct public IP address.

To support Octave development and run a Buildbot Worker, you must do the following:

  • Contact the Octave Maintainers on Discourse to let us know that you wish to provide a system to use as a Buildbot Worker. We will give you a WORKERNAME and a secret PASSWORD to configure your Buildbot Worker.
  • Install buildbot. Packages exist for most distributions. See the buildbot docs for other options. You should create a separate user account with no special privileges that will run buildbot.
  • Decide for a BASEDIR. For example, if the home directory for the buildbot user is /var/lib/buildbot and your WORKERNAME is set to 'debian-x86_64' , then BASEDIR might be /var/lib/buildbot/worker/debian-x86_64.
  • MASTERHOST is buildbot.octave.org and PORT is 9989.
  • Create the configuration
    buildbot-worker create-worker BASEDIR MASTERHOST:PORT WORKERNAME PASSWORD
  • Run buildbot on the worker system, preferably by starting it automatically when your system boots. It should be running with the buildbot user ID.
    buildbot-worker start BASEDIR

ccache[edit]

You may also want to set up ccache to work with buildbot (strongly recommended to speed up builds). If you create a directory ~/buildbot/bin, it will be added to the execution PATH when the Buildbot Master runs commands on the Buildbot Worker. This directory can have symbolic links like the following:

lrwxrwxrwx 1 buildbot buildbot 15 Aug 26 11:39 gcc -> /usr/bin/ccache
lrwxrwxrwx 1 buildbot buildbot 15 Aug 26 11:40 cc -> /usr/bin/ccache
lrwxrwxrwx 1 buildbot buildbot 15 Aug 26 11:40 c++ -> /usr/bin/ccache
lrwxrwxrwx 1 buildbot buildbot 15 Aug 31 23:46 gfortran -> /usr/bin/ccache

They should point to the actual location of ccache if it is not in /usr/bin.

Space Requirements[edit]

Building Octave takes a significant amount of disk space. With debugging symbols, you may need several GB for each build, plus room for ccache (possibly 50GB) if you use it. If you use a cache size that is larger than the default, you'll need to specify that in the .ccache/ccache.conf file using a line like

max_size = 50G

If the directory containing the build and ccache directories doesn't have sufficient space, then these directory names may point to a separate partition that does have enough space available.