wiki:Phabricator/Harbormaster

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:

https://i.imgur.com/spVHWUT.png

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.

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:

https://i.imgur.com/MZJBSWa.jpg

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 ./validate successfully. This status is marked by a red color.
  • Passed, which means the build ran ./validate just 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.

https://i.imgur.com/UdRGunV.png

Click on Build 610 to get the logs for that build:

https://i.imgur.com/Pnr7cyz.png

Last modified 3 years ago Last modified on Nov 3, 2014 2:43:09 PM