diff options
-rwxr-xr-x | contractor | 27 | ||||
-rw-r--r-- | manager-ssh-config | 3 |
2 files changed, 22 insertions, 8 deletions
@@ -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() diff --git a/manager-ssh-config b/manager-ssh-config index bf5a537..dcc0989 100644 --- a/manager-ssh-config +++ b/manager-ssh-config @@ -1,4 +1,3 @@ Host 192.168.* - UserKnownHostsFile /dev/null - StrictHostKeyChecking no + StrictHostKeyChecking allow-new IdentityFile ~/.ssh/manager.key |