Ticket #209: bug209.0001.support-default-workdir.patch

File bug209.0001.support-default-workdir.patch, 3.4 KB (added by gward, 5 years ago)

patch 1/3: fix FileUpload? and FileDownload? to support setDefaultWorkdir()

  • buildbot/process/buildstep.py

    diff --git a/buildbot/process/buildstep.py b/buildbot/process/buildstep.py
    index f38634d..1d1fcbb 100644
    a b class BuildStep: 
    589589        self.buildslave = buildslave 
    590590 
    591591    def setDefaultWorkdir(self, workdir): 
    592         # the Build calls this just after __init__ and setDefaultWorkdir. 
    593         # ShellCommand and variants use a slave-side workdir, but some other 
    594         # steps do not. Subclasses which use a workdir should use the value 
    595         # set by this method unless they were constructed with something more 
    596         # specific. 
     592        # The Build calls this just after __init__().  ShellCommand 
     593        # and variants use a slave-side workdir, but some other steps 
     594        # do not. Subclasses which use a workdir should use the value 
     595        # set by this method unless they were constructed with 
     596        # something more specific. 
    597597        pass 
    598598 
    599599    def addFactoryArguments(self, **kwargs): 
  • buildbot/steps/transfer.py

    diff --git a/buildbot/steps/transfer.py b/buildbot/steps/transfer.py
    index 5f625f1..fe640d9 100644
    a b class FileUpload(BuildStep): 
    8686 
    8787    """ 
    8888 
     89    DEFAULT_WORKDIR = "build"           # is this redundant? 
     90 
    8991    name = 'upload' 
    9092 
    9193    def __init__(self, slavesrc, masterdest, 
    92                  workdir="build", maxsize=None, blocksize=16*1024, mode=None, 
     94                 workdir=None, maxsize=None, blocksize=16*1024, mode=None, 
    9395                 **buildstep_kwargs): 
    9496        BuildStep.__init__(self, **buildstep_kwargs) 
    9597        self.addFactoryArguments(slavesrc=slavesrc, 
    class FileUpload(BuildStep): 
    108110        assert isinstance(mode, (int, type(None))) 
    109111        self.mode = mode 
    110112 
     113    def setDefaultWorkdir(self, workdir): 
     114        if self.workdir is None: 
     115            self.workdir = workdir 
     116 
    111117    def start(self): 
    112118        version = self.slaveVersion("uploadFile") 
    113119        if not version: 
    class FileUpload(BuildStep): 
    133139        # default arguments 
    134140        args = { 
    135141            'slavesrc': source, 
    136             'workdir': self.workdir, 
     142            'workdir': self.workdir or self.DEFAULT_WORKDIR, 
    137143            'writer': fileWriter, 
    138144            'maxsize': self.maxsize, 
    139145            'blocksize': self.blocksize, 
    class FileDownload(BuildStep): 
    213219 
    214220    """ 
    215221 
     222    DEFAULT_WORKDIR = "build"           # is this redundant?  
     223 
    216224    name = 'download' 
    217225 
    218226    def __init__(self, mastersrc, slavedest, 
    219                  workdir="build", maxsize=None, blocksize=16*1024, mode=None, 
     227                 workdir=None, maxsize=None, blocksize=16*1024, mode=None, 
    220228                 **buildstep_kwargs): 
    221229        BuildStep.__init__(self, **buildstep_kwargs) 
    222230        self.addFactoryArguments(mastersrc=mastersrc, 
    class FileDownload(BuildStep): 
    235243        assert isinstance(mode, (int, type(None))) 
    236244        self.mode = mode 
    237245 
     246    def setDefaultWorkdir(self, workdir): 
     247        if self.workdir is None: 
     248            self.workdir = workdir 
     249 
    238250    def start(self): 
    239251        version = self.slaveVersion("downloadFile") 
    240252        if not version: 
    class FileDownload(BuildStep): 
    271283            'maxsize': self.maxsize, 
    272284            'reader': fileReader, 
    273285            'blocksize': self.blocksize, 
    274             'workdir': self.workdir, 
     286            'workdir': self.workdir or self.DEFAULT_WORKDIR, 
    275287            'mode': self.mode, 
    276288            } 
    277289