2016-03-27 12 views
0

Temelde, değerlendirme komutunun üzerine yazmak için ShellCommand'ı devraldım. Değerlendirme komutunda, günlüğü ayrıştırıp bir posta bildirimi göndermek için paketin asıl bekçisini buluyorum.buildbot içinde shellcommand değerlendirmesinde posta bildirimi ekleme

Postayla bildirme dışındaki her şey iyi çalışmıyor.

class CustomShellCommand(ShellCommand): 
    command = None 
    parser = None 
    haltOnFailure = True 
    buildername = '' 
    ci = None 


    def __init__(self,command, ci, buildername, **kwargs): 

     self.ci = ci 

     self.command = command 
     self.buildername = buildername 
     ShellCommand.__init__(self, **kwargs) 
     if len(self.command) > 0 and self.command[0] == 'make_isolated': 
      self.parser = ParseLog() 
      self.addLogObserver('stdio', self.parser) 
     self.setDefaultWorkdir("build") 



    def evaluateCommand(self, cmd): 
     if self.parser is not None: 
      self.parser.packages 
      for pkg in self.parser.packages: 
       emails = get_maintainer_emails() 
     if cmd.rc > 0: 
      mn = add_mail_notifiers([self.buildername], emails[-1]) 
      self.ci.masterconfig['services'].append(mn) 

      return util.FAILURE 
     else: 
      return util.SUCCESS 

Ama init çalıştığını, ancak komutunu değerlendirmek çalışmıyor posta Bildirimleri eklediğinizde. Herhangi bir işaretçi takdir edilecektir.

cevap

1

Ben bir inşaat uzmanı değilim, 2 ay önce yeni işimde kullanmaya başladım. Ama burada MailNotifier ana ile ilgili bir şey olduğunu ve daha kesin olarak yapılandırma için olduğunu düşünüyorum. Senin ShellCommand için, ana, yapılandırmasını yüklediğinde __init__'u çalıştırır. Ama ben evaluateCommand Bence sadece çalışma zamanında slave tarafından çalıştırılır ve master yapılandırmasını değiştiremezler ...

Burada, başarısız yapılar için kişiselleştirilmiş posta göndermek için harici bir komut dosyası yazdık. Her gece, sabahın erken saatlerinde ve insanların ofise gelmeden önce onu tetikleyen bir yapıcıya sahiptir. Bunu daha genel olarak nasıl yapacağımızı araştıracağız, çünkü projemizden sadece biri bu özelliği taşıyor, diğer projelerin başarısızlıkları herkese gönderilen genel bir postayla özetleniyor. Belki de SetProperty ile ilgili bir şey var, ama şimdi anlatamam ...

İlgili konular