2016-12-21 21 views
2

In der Fortsetzung zu jenkins-pipeline-syntax-for-p4sync - Ich bin nicht in der Lage, die "Poll SCM" -Option für meinen Job in der Pipeline arbeiten. Hier ist meine Konfiguration:Jenkins Pipeline Umfrage notgedrungen

  1. "Poll SCM" geprüft und festgelegt alle 10 Minuten
  2. Pipeline-Skript enthält die folgenden zur Abstimmung:

 
node ('some-node') // not actual value 
{ 
    stage ('checkout') 
    { 
     checkout([ 
      $class: 'PerforceScm', 
      credential: '11111111-1111-1111-1111-11111111111', // not actual value 
      populate: [ 
       $class: 'AutoCleanImpl', 
       delete: true, 
       modtime: false, 
       parallel: [ 
        enable: false, 
        minbytes: '1024', 
        minfiles: '1', 
        path: '/usr/local/bin/p4', 
        threads: '4' 
        ], 
       pin: '', 
       quiet: true, 
       replace: true 
       ], 
      workspace: [ 
       $class: 'ManualWorkspaceImpl', 
       charset: 'none', 
       name: 'jenkins-${NODE_NAME}-${JOB_NAME}', 
       pinHost: false, 
       spec: [ 
        allwrite: false, 
        clobber: false, 
        compress: false, 
        line: 'LOCAL', 
        locked: false, 
        modtime: false, 
        rmdir: false, 
        streamName: '', 
        view: '//Depot/subfolder... //jenkins-${NODE_NAME}-${JOB_NAME}/...' // not actual value 
        ] 
       ] 
      ] 
     ) 
    }

stage ('now do something') { sh 'ls -la' } }
  1. Lief den Job manuell einmal

Immer noch, Polling funktioniert nicht und Job hat keinen "Perforce Software Polling Log" -Link wie ein nicht-pipelined Job, wenn er die Perforce-Quelle konfiguriert und SCM in der GUI abfragt. Es ist, als ob der PerforceSCM eine Umfrage vermisst: wahre Einstellung - oder ich mache etwas falsch.

Momentan habe ich eine Problemumgehung, in der ich in einem non-pipelined-Job, der einen Pipeline-Job auslöst, zwangsläufig abfragte, aber dann muss ich die Änderungslisten manuell übergeben und würde lieber den Pipeline-Job erledigen.

edit: Versionen

jenkins - 2.7.4
P4 Plugin - 1.4.8
Pipeline-Plugin - 2.4
Pipeline SCM Schritt Plugin - 2.2

Antwort

1

Wenn Sie zum Groovy gehen Snippet Generator und aktivieren Sie das Kontrollkästchen "in Abfrage einschließen". Sie sehen, dass der generierte Code eine Werbebuchung dafür enthält:

checkout([ 
      poll: true, 

Nebenbei bemerkt, Sie können im Moment Probleme mit $ {NODE_NAME} in Ihrem Arbeitsbereich Name auftreten. Die Abfrage wird auf dem Master ausgeführt, sodass die Änderungsnummer Ihres vorherigen Builds möglicherweise nicht richtig gefunden wird. Wenn das der Fall ist, weiß ich, dass ein Fix für ihn bald kommen sollte.

+0

Danke für die Antwort. 1. im Snippet-Generator, wenn das SCM "Perforce-Software" ist - auch wenn "in Polling einschließen" aktiviert ist - erzeugt es kein "poll: true" im Snippet. Ich bin mir also nicht sicher, ob es unterstützt wird. 2. Können Sie mit den Arbeitsbereichen auf das relevante Problem verlinken - zu Tracking-Zwecken? – Pyrocks

+0

Es trifft mich nur, dass der Arbeitsbereich Name nicht richtig funktioniert, weil das Snippet mit einfachen Anführungszeichen (') für Strings generiert wird. Wenn Sie stattdessen doppelte Anführungszeichen (") verwenden, erhalten Sie den richtigen Arbeitsbereich. Das ist eine bekannte Einschränkung in pipeline/groovy. - Siehe Abschnitt" String-Interpolation "in [link] (https://jenkins.io/doc/book/pipeline/jenkinsfile) – Pyrocks

0

Nach der Aktualisierung aller Plugins auf den letzten (ab diesem Post-Datum) und Neustart des Jenkins-Servers - scheint die Abfrage mit genau der gleichen Konfiguration zu arbeiten (Job hat jetzt den Poll-Log-Link). Ich bin mir nicht sicher, was genau das Problem gelöst hat - aber ich halte es für gelöst.