Skia Buildbots ============== Overview -------- Like the Chromium team, the Skia team uses [buildbot](http://trac.buildbot.net/) to run continuous builds and tests. Here is a link to our main status page: https://status.skia.org/ There are also buildbot console pages for a detailed view of those results: Externally-facing: * http://build.chromium.org/p/client.skia/console * http://build.chromium.org/p/client.skia.android/console * http://build.chromium.org/p/client.skia.compile/console * http://build.chromium.org/p/client.skia.fyi/console Internally-facing: * http://uberchromegw.corp.google.com/i/client.skia/console * http://uberchromegw.corp.google.com/i/client.skia.android/console * http://uberchromegw.corp.google.com/i/client.skia.compile/console * http://uberchromegw.corp.google.com/i/client.skia.fyi/console * http://uberchromegw.corp.google.com/i/client.skia.internal/console Architecture ------------ The buildbot system consists of these elements: \(see http://buildbot.net/buildbot/docs/current/manual/introduction.html#system-architecture for more detail\) * Buildbot Master * Watches for new commits to land in the Skia repository \(https://skia.googlesource.com/skia\) * Whenever a new commit lands, it triggers a **Build** on each **Builder** to test the new revision. * Serves up status pages whenever anybody requests them * Build * One run of a particular **Builder**, at a particular code revision. * "Build" is sort of a misnomer; it's just a list of steps (typically shell commands) which are run by the **Buildslave** process on the host machine, and those may include compiling and running code as well as arbitrary other commands. * Builder * One repeatable build and/or test configuration on a given platform. The Builder is basically a blueprint which provides logic to determine which steps to run within a Build. * Buildslave \(or "buildbot slave"\) * A process running on a host machine that builds and runs code as directed by the Buildbot Master. * One or more Builders may run on a given Buildslave, but only one runs at a time. * One or more Buildslaves may run on a given host machine. Status View ------------ The status view shows a table with builders, grouped by test type and platform, on the X-axis and commits on the Y-axis. The cells are colored according to the status of the build for each commit: * green: success * orange: failure * purple: exception (infrastructure issue) * black border, no fill: build in progress * blank: no build has started yet for a given revision Commits are listed by author, and the branch on which the commit was made is shown on the very left. A purple result will override an orange result. For more detail, you can click on an individual cell to get a summary of the steps which ran for that build. You can also click one of the white bars at the top of each column to see a summary of recent builds for a given builder. The status page has several filters which can be used to show only a subset of bots: * Interesting: Bots which have both successes and failures within the visible commit window. * Failures: Bots which have failures within the visible commit window. * Comments: Bots which have comments. * Failing w/o comment: Bots which have failures within the visible commit window but have no comments. * All: Display all bots. * Search: Enter a search string. Substrings and regular expressions may be used, per the Javascript String Match() rules: http://www.w3schools.com/jsref/jsref_match.asp