summaryrefslogtreecommitdiff
path: root/contractor
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-04-09 14:12:35 +0300
committerLars Wirzenius <liw@liw.fi>2020-04-09 14:12:35 +0300
commitea0fdd95cbd255a7044d5fad10b0772fb93393c8 (patch)
treebf8454dae3deaead32c5d4ebcb3cd1eb62de8aff /contractor
parent95625472c0cda297413cdb9fb2294c73f0e909da (diff)
downloadick-contractor-ea0fdd95cbd255a7044d5fad10b0772fb93393c8.tar.gz
Change: upload workspace, source
Diffstat (limited to 'contractor')
-rwxr-xr-xcontractor27
1 files changed, 21 insertions, 6 deletions
diff --git a/contractor b/contractor
index 03ed7ea..ca83fd4 100755
--- a/contractor
+++ b/contractor
@@ -93,12 +93,15 @@ class ContractorApplication(cliapp.Application):
ws = bs.workspace()
if ws and os.path.exists(ws):
self.verbose('upload saved workspace from {}'.format(ws))
- w.upload_workspace(ws)
+ if w.upload_workspace(ws) != 0:
+ self.error('failed to upload workspace')
+ sys.exit(1)
+
+ self.verbose('upload source code from{}'.format(bs.source()))
+ if w.upload_source(bs.source()):
+ self.error('failed to upload source')
+ sys.exit(1)
- # source = os.path.expanduser(build['source'])
- # self.verbose('Uploading source code from {}'.format(source))
- # self.on_worker('worker', ['find', '/workspace/src', '-delete'])
- # self.cmd_sources([source])
# self.verbose('Running build commands')
# o = self.on_worker(
@@ -493,7 +496,19 @@ class Worker:
def upload_workspace(self, dirname):
return rsync(
- '{}/.'.format(dirname), '{}/workspace/.'.format(self._target))
+ '{}/.'.format(dirname),
+ '{}/workspace/.'.format(self._target))
+
+ def upload_source(self, dirname):
+ out, err, exit_code = self.ssh(
+ ['sudo', 'install', '-d', '--owner=worker', '--group=worker',
+ '/workspace/src'])
+ if exit_code != 0:
+ logging.error('Could not create /workspace/src on worker')
+ return None
+ return rsync(
+ '{}/.'.format(dirname),
+ '{}:/workspace/src/.'.format(self._target))
ContractorApplication().run()