diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-04-09 14:12:35 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-04-09 14:12:35 +0300 |
commit | ea0fdd95cbd255a7044d5fad10b0772fb93393c8 (patch) | |
tree | bf8454dae3deaead32c5d4ebcb3cd1eb62de8aff /contractor | |
parent | 95625472c0cda297413cdb9fb2294c73f0e909da (diff) | |
download | ick-contractor-ea0fdd95cbd255a7044d5fad10b0772fb93393c8.tar.gz |
Change: upload workspace, source
Diffstat (limited to 'contractor')
-rwxr-xr-x | contractor | 27 |
1 files changed, 21 insertions, 6 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() |