Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| tinderbox [2008/01/26 22:33] – fix typo MarkLinimon | tinderbox [2022/10/06 02:57] (current) – Chase page rename KubilayKocak | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Tinderbox | + | ===== Tinderbox ===== |
| - | This article describes the %%FreeBSD%% source tinderbox. | + | This article describes the %%FreeBSD%% source tinderbox. |
| - | + | ||
| - | ===== Overview ===== | + | |
| The tinderbox ecosystem consists of: | The tinderbox ecosystem consists of: | ||
| Line 13: | Line 11: | ||
| * 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. | + | ===== History ===== |
| - | All scripts and configuration files are kept in [http://www.freebsd.org/cgi/cvsweb.cgi/ | + | tinderbox |
| - | ===== The tinderbox script ===== | + | All scripts and configuration files are kept in [[http:// |
| + | |||
| + | ===== Dashboard & Build Status ===== | ||
| + | |||
| + | **Note: | ||
| + | |||
| + | Summaries and logs from the official build servers are made available online at [[http:// | ||
| + | |||
| + | 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 '' | ||
| + | * [[Apache]] is set up to use '' | ||
| + | * A [[https:// | ||
| + | |||
| + | ===== tinderbox script ===== | ||
| This section has not yet been written. | This section has not yet been written. | ||
| - | ===== The tbmaster script ===== | + | ===== tbmaster script ===== |
| This section has not yet been written. | This section has not yet been written. | ||
| - | ===== The index.cgi script | + | ===== Configuration Files ===== |
| This section has not yet been written. | This section has not yet been written. | ||
| - | ===== Configuration files ===== | + | ===== index.cgi script |
| - | This section has not yet been written. | + | The '' |
| - | ===== Official Build Servers ===== | + | The script outputs strict XHTML 1.0 code and uses CSS for styling. |
| - | The official tinderbox build servers are hosted by [http:// | + | ==== MAIN ==== |
| - | There are currently three build servers: | + | The script' |
| - | * **freebsd-current.sentex.ca**: | + | The script starts by attempting to verify that it is running on the official tinderbox web site. |
| - | * **freebsd-stable.sentex.ca**: | + | |
| - | * **freebsd-legacy.sentex.ca**: | + | |
| - | The " | + | It then scans the log directory to get an inventory of configurations, |
| - | * **Tier 1**: '' | + | < |
| - | * **Tier 2**: '' | + | tinderbox-$config-$branch-$arch-$machine.{brief,full} |
| - | * **Tier 3**: '' | + | </code> |
| - | * **Tier 4**: '' | + | |
| - | ===== Official Summary Site ===== | + | The configurations used on the official tinderbox build servers are named for the branches they build; for instance, the '' |
| - | Summaries and logs from the official build servers are made available online at [[[http:// | + | Once this has been determined, |
| - | Currently, this site is hosted by %%DagErlingSm%%ørgrav. | + | ==== do_config() ==== |
| - | * A cron job checks the build servers at regular intervals and downloads any new log files using '' | + | The '' |
| - | * Apache is set up to use '' | + | |
| - | * A [http:// | + | |
| - | ===== Room for Improvement | + | It first generates a header row, then iterates over each branch build with this particular configuration, |
| + | |||
| + | * For each architecture, | ||
| + | * For each machine within that architecture, | ||
| + | * If a //brief// log file exists: | ||
| + | * Call '' | ||
| + | * Output the modification date | ||
| + | * Output the size of the //brief// log file with a link to the file itself | ||
| + | * If a //full// log file also exists: | ||
| + | * Output the size of the //full// log file with a link to the file itself | ||
| + | * Otherwise: | ||
| + | * Output '' | ||
| + | |||
| + | ==== success() | ||
| + | |||
| + | The '' | ||
| + | |||
| + | ==== Build Sorting ==== | ||
| + | |||
| + | Configurations and branches are sorted according to their //branch rank//, which is computed as follows: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | In practical terms, this means that '' | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Colors ==== | ||
| + | |||
| + | The summary script uses CSS to apply different colors to each cell in the table. | ||
| + | |||
| + | ===== Official Build Servers ===== | ||
| + | |||
| + | The official tinderbox build servers are hosted by [[http:// | ||
| + | |||
| + | There are currently three build servers: | ||
| + | |||
| + | * **freebsd-current.sentex.ca**: | ||
| + | * '' | ||
| + | * '' | ||
| + | * **freebsd-stable.sentex.ca**: | ||
| + | * **freebsd-legacy.sentex.ca**: | ||
| + | |||
| + | ===== Future Work ===== | ||
| Suggested improvements: | Suggested improvements: | ||
| - | * improve | + | * Improve |
| - | * when a build finishes, keep the source and object tree along with the log file, and filter the log file through a CGI script that adds markup linking every file name to the corresponding file in the source or object tree, and every compiler error or warning with the file and line it references. | + | * When a build finishes, keep the source and object tree along with the log file, and filter the log file through a CGI script that adds markup linking every file name to the corresponding file in the source or object tree, and every compiler error or warning with the file and line it references. |
| - | * instead | + | * Instead |
| - | * store results (though perhaps not full logs) in a database | + | * Store results (though perhaps not full logs) in a database |
| - | * implement | + | * Implement |
| * avoids building branches that haven' | * avoids building branches that haven' | ||
| * prioritizes some branches over others, e.g. security branches over stable branches over head | * prioritizes some branches over others, e.g. security branches over stable branches over head | ||
| - | * implement | + | * Implement |
| + | * One weakness of the current summary script is that it relies on colors to distinguish successful from failed builds. | ||
| + | |||
| + | See %%DagErlingSm%%ørgrav/ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||
| + | {{tag> | ||