CCL | Software | Download | Manuals | Forum | Papers
CCL Home

Research

Software Community Operations

How to Run Autobuild


To run Autobuild, you should probably be using a campus machine. Autobuild requires the use of Git and Condor to function.

Why do you want to run Autobuild as yourself? After all, Autobuild runs automatically (hence the name) for the master branch and for pull requests. The best reason to run Autobuild as yourself is so that you don't spam the whole team (via CCTOOLS-BUILD@listserv.nd.edu) when debugging a branch or build. Instead, you can run Autobuild yourself so that it emails only you. When you're satisified that your branch is ready to be public, then you push it to GitHub.

However, don't let the stop you from making or updating a PR with finished work on a branch. Autobuild is there to find build/test bugs for you. But please keep spam in mind if you're trying to fix something.

Clone Autobuild from GitHub

In your home directory, clone Autobuild:

git clone git@github.com:cooperative-computing-lab/autobuild.git

You must have ssh keys setup on GitHub and be a member of ccl-team.

Setup Run Scripts

In your .bashrc file:

function run { printf '%s\n' "$*" > /dev/tty "$@" } function auto { run ~/autobuild/autobuild \ --build-dir .git/autobuild/ \ --build-url "file://$(pwd)/.git/autobuild/" \ --docker \ --gc \ --git-dir .git \ --verbose \ "$@" } function autohead { auto "$@" -- HEAD }

Or you can setup equivalent shell scripts:

~/bin/auto #!/bin/sh run() { printf '%s\n' "$*" > /dev/tty "$@" } run ~/autobuild/autobuild \ --build-dir .git/autobuild/ \ --build-url "file://$(pwd)/.git/autobuild/" \ --docker \ --gc \ --git-dir .git \ --verbose \ "$@" ~/bin/autohead #!/bin/sh auto "$@" -- HEAD

Running Autobuild

Now you should be able to run Autobuild yourself:

pdonnel3@ccl12 ~/cctools$ pwd /afs/nd.edu/user31/pdonnel3/cctools pdonnel3@ccl12 ~/cctools$ ls .git branches COMMIT_EDITMSG config description FETCH_HEAD HEAD hooks index info logs objects ORIG_HEAD packed-refs refs pdonnel3@ccl12 ~/cctools$ auto HEAD /afs/nd.edu/user31/pdonnel3/autobuild/autobuild --build-dir .git/autobuild/ --build-url file:///afs/nd.edu/user31/pdonnel3/cctools/.git/autobuild/ --gc --git-dir .git --verbose HEAD [Fri May 22 11:37:18 EDT 2015] /afs/nd.edu/user37/ccl/software/external/git/bin/git rev-list --no-walk HEAD Building: [Fri May 22 11:37:18 EDT 2015] /afs/nd.edu/user37/ccl/software/external/git/bin/git --no-pager log --name-status c975d7839225404b59c4b87fca523546fbac5ea7^! [...] pdonnel3@ccl12 ~/cctools$ ls .git/autobuild/ c975d783

The directory .git/autobuild/ contains all of the build output files. Old builds are automatically garbage collected whenever you run autobuild (with --gc).