Bug 1290531 - Add mach taskcluster-build-image command; r=dustin

Docker image building will soon need to use Python in order to produce
the image build context archive.

As the first step towards this, we introduce a Python function that
calls out to build.sh. We also implement a mach command that calls it
so we can test the functionality.

I'm not keen about introducing a new mach command. I'd prefer to have
a sub-command instead. I'm not sure what all uses
`mach taskcluster-load-image`. Perhaps we could make a `taskcluster`
top-level command. Or perhaps we could fold these image commands into
`mach taskgraph`? Either way, the mach side of this isn't terribly
important to the commit series: most of the code will live inside a
Python module outside of mach.

MozReview-Commit-ID: AI8p6H4psNh
This commit is contained in:
Gregory Szorc
2016-07-29 12:45:25 -07:00
parent dab4ce5291
commit f1364a2a25
2 changed files with 26 additions and 1 deletions

View File

@@ -228,7 +228,7 @@ class MachCommands(MachCommandBase):
@CommandProvider
class LoadImage(object):
class TaskClusterImagesProvider(object):
@Command('taskcluster-load-image', category="ci",
description="Load a pre-built Docker image")
@CommandArgument('--task-id',
@@ -253,3 +253,16 @@ class LoadImage(object):
except Exception:
traceback.print_exc()
sys.exit(1)
@Command('taskcluster-build-image', category='ci',
description='Build a Docker image')
@CommandArgument('image_name',
help='Name of the image to build')
def build_image(self, image_name):
from taskgraph.docker import build_image
try:
build_image(image_name)
except Exception:
traceback.print_exc()
sys.exit(1)