Difference between revisions of "Continuous Build"
m (Move to Category:Building.) |
|||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | GNU Octave uses [https://buildbot.net/ Buildbot] to build and test the current development version on multiple systems in a number of different configurations. | |
{{Note|The current status of the builds may be found at http://buildbot.octave.org:8010/#/waterfall.}} | {{Note|The current status of the builds may be found at http://buildbot.octave.org:8010/#/waterfall.}} | ||
Line 11: | Line 11: | ||
! Builder ID !! Hg Version !! System !! Compiler !! Build Options !! Frequency | ! Builder ID !! Hg Version !! System !! Compiler !! Build Options !! Frequency | ||
|- | |- | ||
− | | clang- | + | | clang-4.0-debian || default || Debian Testing || Clang 4.0 || || Any Change |
|- | |- | ||
− | | clang-4.0-debian || | + | | 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 | ||
|- | |- | ||
− | | clang-fedora || default || Fedora | + | | stable-clang-5.0-debian || stable || Debian Testing || Clang 5.0 || || Any Change |
+ | |- | ||
+ | | clang-fedora || default || Fedora (current release) || Clang (system default) || || Any Change | ||
|- | |- | ||
− | | clang- | + | | stable-clang-fedora || stable || Fedora (current release) || 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-debian || default || Debian Testing || GCC 7 || || Any Change | ||
|- | |- | ||
− | | gcc-7-lto-debian || default || Debian Testing || GCC | + | | gcc-7-lto-debian || default || Debian Testing || GCC 7 || Enable link time optimization || Any Change |
|- | |- | ||
− | | gcc-fedora || default || Fedora | + | | gcc-fedora || default || Fedora (current release) || GCC (system default) || || Any Change |
|- | |- | ||
− | | gcc-lto-fedora || default || Fedora | + | | gcc-lto-fedora || default || Fedora (current release) || GCC (system default) || Enable link time optimization || Any Change |
|- | |- | ||
| 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 ( | + | | 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 | ||
|- | |- | ||
|} | |} | ||
− | = | + | = Setup and run a Buildbot Worker = |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Your system may be behind a firewall. It does not have to have a distinct public IP address. | 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 [https://octave.discourse.group/c/maintainers/7 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 <code>WORKERNAME</code> and a '''secret''' <code>PASSWORD</code> 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 <code>BASEDIR</code>. For example, if the home directory for the buildbot user is {{Path|/var/lib/buildbot}} and your <code>WORKERNAME</code> is set to <code>'debian-x86_64'</code> , then <code>BASEDIR</code> might be {{Path|/var/lib/buildbot/worker/debian-x86_64}}. | ||
+ | * <code>MASTERHOST</code> is <code>buildbot.octave.org</code> and <code>PORT</code> is <code>9989</code>. | ||
+ | * Create the configuration<pre>buildbot-worker create-worker BASEDIR MASTERHOST:PORT WORKERNAME PASSWORD</pre> | ||
+ | * Run buildbot on the worker system, preferably by starting it automatically when your system boots. It should be running with the buildbot user ID. <pre>buildbot-worker start BASEDIR</pre> | ||
− | + | == ccache == | |
− | |||
− | + | You may also want to set up '''ccache''' to work with buildbot (strongly recommended to speed up builds). If you create a directory {{Path|~/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: | |
− | |||
− | + | cc -> /usr/bin/ccache | |
− | + | c++ -> /usr/bin/ccache | |
− | + | gcc -> /usr/bin/ccache | |
+ | gfortran -> /usr/bin/ccache | ||
− | + | They should point to the actual location of ccache if it is not in {{Path|/usr/bin}}. | |
− | if | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Space Requirements == | == Space Requirements == | ||
Line 134: | Line 101: | ||
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. | 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. | ||
− | == | + | = External links = |
− | |||
− | |||
− | + | * [https://hg.octave.org/octave-buildbot/ Buildbot configuration repository] for http://buildbot.octave.org:8010 | |
− | |||
[[Category:Building]] | [[Category:Building]] |
Latest revision as of 19:34, 21 September 2020
GNU Octave uses Buildbot to build and test the current development version on multiple systems in a number of different configurations.
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 (current release) | Clang (system default) | Any Change | |
stable-clang-fedora | stable | Fedora (current release) | 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 (current release) | GCC (system default) | Any Change | |
gcc-lto-fedora | default | Fedora (current release) | 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 secretPASSWORD
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 yourWORKERNAME
is set to'debian-x86_64'
, thenBASEDIR
might be /var/lib/buildbot/worker/debian-x86_64. MASTERHOST
isbuildbot.octave.org
andPORT
is9989
.- 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:
cc -> /usr/bin/ccache c++ -> /usr/bin/ccache gcc -> /usr/bin/ccache 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.