| Both sides previous revision Previous revision Next revision | Previous revision |
| tinderbox [2022/10/04 00:13] – Chase page rename KubilayKocak | tinderbox [2022/10/06 02:57] (current) – Chase page rename KubilayKocak |
|---|
| **Note:** The continuous integration tinderbox described on this page is currently not operational. Until or unless it is fixed, please see the Jenkins [[https://ci.freebsd.org/tinderbox|Tinderbox-style view]] instead. | ===== Tinderbox ===== |
| | |
| ====== Tinderbox ====== | |
| |
| This article describes the %%FreeBSD%% source tinderbox. To learn more about what it does, take a look at the [[http://tinderbox.freebsd.org/|current FreeBSD src build status]]. | This article describes the %%FreeBSD%% source tinderbox. To learn more about what it does, take a look at the [[http://tinderbox.freebsd.org/|current FreeBSD src build status]]. |
| |
| ===== Overview ===== | |
| |
| The tinderbox ecosystem consists of: | The tinderbox ecosystem consists of: |
| * A web server that keeps a complete set of tinderbox logs and displays an up-to-date summary | * A web server that keeps a complete set of tinderbox logs and displays an up-to-date summary |
| |
| The tinderbox scripts were developed (and are still maintained) by %%DagErlingSm%%ørgrav. The original version was a shell script that ran on ''%%bento.freebsd.org%%'' once a day, after one Alpha-breaking commit too many. It was replaced with the current Perl implementation in early 2003. | ===== History ===== |
| | |
| | tinderbox scripts were developed and are maintained by %%DagErlingSm%%ørgrav. The original version was a shell script that ran on ''%%bento.freebsd.org%%'' once a day, after one Alpha-breaking commit too many. It was replaced with the current Perl implementation in early 2003. |
| |
| All scripts and configuration files are kept in [[http://svnweb.freebsd.org/base/user/des/tinderbox/|base/user/des/tinderbox]]. | All scripts and configuration files are kept in [[http://svnweb.freebsd.org/base/user/des/tinderbox/|base/user/des/tinderbox]]. |
| |
| ===== The tinderbox script ===== | ===== Dashboard & Build Status ===== |
| | |
| | **Note:** The service described here is no longer operational and now redirects to the %%FreeBSD%% [[Jenkins]] Continuous Integration service: [[https://ci.freebsd.org/tinderbox|Tinderbox-style view]]. |
| | |
| | Summaries and logs from the official build servers are made available online at [[http://tinderbox.freebsd.org/]]. |
| | |
| | Currently, this site is hosted by %%DagErlingSm%%ørgrav. The site is set up as follows: |
| | |
| | * A cron job checks the build servers at regular intervals and downloads any new log files using ''%%rsync%%''. |
| | * [[Apache]] is set up to use ''%%index.cgi%%'' as ''%%DirectoryIndex%%''. |
| | * A [[https://www.varnish-cache.org/|Varnish]] instance in front of Apache ensures that ''%%index.cgi%%'' does not need to run more than once every two minutes. |
| | |
| | ===== tinderbox script ===== |
| |
| This section has not yet been written. See the ''%%tinderbox(1)%%'' manual page for details. | This section has not yet been written. See the ''%%tinderbox(1)%%'' manual page for details. |
| |
| ===== The tbmaster script ===== | ===== tbmaster script ===== |
| |
| This section has not yet been written. See the ''%%tbmaster(1)%%'' manual page for details. | This section has not yet been written. See the ''%%tbmaster(1)%%'' manual page for details. |
| |
| ===== Configuration files ===== | ===== Configuration Files ===== |
| |
| This section has not yet been written. | This section has not yet been written. |
| |
| ===== The index.cgi script ===== | ===== index.cgi script ===== |
| |
| The ''%%index.cgi%%'' script generates the HTML summary. Although intended to be used as a CGI script (as the name indicates), it can also be run from the command line, or from a cron job, in which case it will look for logs in the directory in which the script itself is located. It will automatically detect the context, and output HTTP headers only if run as a CGI script. | The ''%%index.cgi%%'' script generates the HTML summary. Although intended to be used as a CGI script (as the name indicates), it can also be run from the command line, or from a cron job, in which case it will look for logs in the directory in which the script itself is located. It will automatically detect the context, and output HTTP headers only if run as a CGI script. |
| The ''%%success()%%'' subroutine scans a //brief// log file to determine whether the build was successful. This is done quite simply by searching for the string "tinderbox run completed". | The ''%%success()%%'' subroutine scans a //brief// log file to determine whether the build was successful. This is done quite simply by searching for the string "tinderbox run completed". |
| |
| ==== Sorting ==== | ==== Build Sorting ==== |
| |
| Configurations and branches are sorted according to their //branch rank//, which is computed as follows: | Configurations and branches are sorted according to their //branch rank//, which is computed as follows: |
| * **freebsd-legacy.sentex.ca**: builds RELENG_6 and supported 6.x branches for amd64, i386, pc98 and sparc64; each branch takes about three hours. | * **freebsd-legacy.sentex.ca**: builds RELENG_6 and supported 6.x branches for amd64, i386, pc98 and sparc64; each branch takes about three hours. |
| |
| ===== Official Summary Site ===== | ===== Future Work ===== |
| | |
| Summaries and logs from the official build servers are made available online at [[http://tinderbox.freebsd.org/]]. | |
| | |
| Currently, this site is hosted by %%DagErlingSm%%ørgrav. The site is set up as follows: | |
| | |
| * A cron job checks the build servers at regular intervals and downloads any new log files using ''%%rsync%%''. | |
| * Apache is set up to use ''%%index.cgi%%'' as ''%%DirectoryIndex%%''. | |
| * A [[http://www.varnish-cache.org/|Varnish]] instance in front of Apache ensures that ''%%index.cgi%%'' does not need to run more than once every two minutes. | |
| | |
| ===== Future directions ===== | |
| |
| Suggested improvements: | Suggested improvements: |
| * One weakness of the current summary script is that it relies on colors to distinguish successful from failed builds. I have tried to find a better way—adding "FAIL" or "OK" to each table cell depending on the outcome of the corresponding build, for instance—but everything I've come up with has increased the size of the summary page to the point where it won't fit in a browser without scrolling, even on 1600x1200. | * One weakness of the current summary script is that it relies on colors to distinguish successful from failed builds. I have tried to find a better way—adding "FAIL" or "OK" to each table cell depending on the outcome of the corresponding build, for instance—but everything I've come up with has increased the size of the summary page to the point where it won't fit in a browser without scrolling, even on 1600x1200. |
| |
| See LightMyFire for more information on this subject. | See %%DagErlingSm%%ørgrav/%%LightMyFire%% for more information on this subject. |
| | |
| | ---- |
| | |
| | {{tag>Services}} |
| | {{tag>Stale}} |
| |