ReleaseEngineering/How To/Run a build on a loaner

From MozillaWiki
Jump to: navigation, search

So you've gotten a loaner. Here are some loose steps that may help you get closer to creating a build. They relate to doing this on a windows build machine around June 2015, steps on other OSes may vary. Ask #releng for help if you get stuck.

Verifying stuff works

First off, connect to your machine through VPN and VNC (see previous link).

There should no longer be an open terminal (cmd) window that indicates the slave is still part of the build pool. Also check running processes to make sure that the machine is no longer being used by our continuous integration systems.

Set up the right shell

Find the mozillabuild folder (normally C:\mozilla-build). Its root has a bundle of bat scripts that will start terminals. Make a copy of start-buildbot.bat. Open it in your favourite editor and go towards the end of the file. You should find a command to start runslave.py. Remove that invocation.

Now run your copy of the buildbot script. You should be dumped into a terminal that has most of mozillabuild and msvc in $PATH, and be running bash (IIRC? Please correct/clarify!). This is what you want.

If your build issues are related to somewhere in the packaging phase, you may want to define MOZ_AUTOMATION=1 as an environment variable in order to make the build mimic the "normal" automation build as much as possible. It will fail in the upload phase if not before because it won't know where to put the build results. Presumably if you do this it would otherwise fail earlier anyway.

Getting what you need

Normally, the slave builds under c:/builds/moz2_slave/. To make builds work as much the same as possible, the easiest is to create your own directory under it (don't worry, the slave will be reimaged after you're done anyway), and then to create a subdirectory src under that where you prepare your source dir.

To do this, just use hg and/or copy from one of the existing src directories in one of the other build subdirectories (which may be quicker than cloning over https).

Now, unfortunately you need 2 more things:

  1. a copy of mozmake in your srcdir. I had help from #releng to get this (normally the file comes from tooltool, and you would need some kind of token ), but maybe copying the file from your own copy of mozillabuild works. If IE is giving you lemons because of restricted zones and whatnot, use wget to fetch a file from outside the machine.
  2. a mozconfig. You should generally be able to copy the right one from the source tree: https://dxr.mozilla.org/mozilla-central/source/browser/config/mozconfigs/win64/debug or the equivalent win32 file, right to .mozconfig in the top of your source dir.

Running the build

You may need to edit the MOZCONFIG file to set up an objectdir, if that's what you want. I don't recall exactly.

If not: run ./mach build!

(if you decided not to set MOZ_AUTOMATION=1, you may want to run ./mach package afterwards, too.)