Harbormaster: continuous integration & patch building for GHC
When you use Arcanist to submit a diff, Phabricator will automatically trigger a build rule using an application called "Harbormaster". This application causes a build machine in the background to apply your patch and run
sh ./validate. Afterwords, your diff will be updated with a status from Harbormaster about the build, including links to build logs and testsuite results.
The current status of the build is at the top. Phab:D162 is a good example:
Click on the link posted by Harbormaster (in this case, "Harbormaster completed building B467: Diff 379") to the build to go to the Buildable, like Phab:B467 in this case. There you can follow links to individual builds, containing stdout/stderr logs, like https://phabricator.haskell.org/harbormaster/build/468/
Note that every time you run
arc diff and update an existing review or create a new one, you'll trigger a build.
Harbormaster also builds GHC commits that have been pushed. You can see more on the Harbormaster application.
Note: You can use the word "[ci skip]" or "[skip ci]" by itself in the commit when you submit a diff or push something to skip builds. You may want to do this if you know your build will break, but you just want to post code.
Navigating the application UI
However, it's also useful to understand the application UI as well, so you can look through (or search for) previous builds.
First, go to https://phabricator.haskell.org/harbormaster, the top-level application. Here, you can see a list of all the latest builds; for example:
Here we see builds for commits and builds for revisions. The metadata attached to each entry tells you this: things of the form
Dabc - Diff xyz represent diffs, and things of the form
rGHC: foo ... are for GHC commits.
Furthermore, a build is:
- Building, which means the build is currently running. This status is marked by a blue color.
Failed, which means the build failed to run
./validatesuccessfully. This status is marked by a red color.
Passed, which means the build ran
./validatejust fine. This status is marked by a green color.
Viewing build logs
For any build, you can view the build logs. To do that, go to the harbormaster build from the application page - for example, you can go to Phab:B609 to see the results for commit 9f8754eb46b59886ebc09dec2581ed31eea053dc.
Click on Build 610 to get the logs for that build: