2017-11-09 4 views
6

ignoriert Ich habe folgende Jenkins Job Definition:Jenkins Job Builder Gitlab Trigger

- scm: 
    name: some-project 
    scm: 
    - git: 
     url: [email protected]****/some-project.git 
     credentials-id: some-ssh-username-with-private-key 
     branches: 
     - origin/master 
- project: 
    name: some-project 
    jobs: 
     - '{name}': 
     triggers: 
      gitlab: 
      trigger-push: true 
      trigger-merge-request: false 
      trigger-open-merge-request-push: never 

Jetzt kann dieser Job ohne Fehler Jenkins hochgeladen werden, aber wenn ich auf Configure Seite von some-project in Jenkins Web UI gehen, ich kann sehen, dass Build when a change is pushed to GitLab in Auslöser Abschnitt ist nicht aktiviert. GitLab Repo wird korrekt konfiguriert - Quellcodeverwaltung Abschnitt dieses Jobs hat [email protected]****/some-project.git mit some-ssh-username-with-private-key Anmeldeinformationen und Zweig origin/master konfiguriert. Aber ohne funktionierende Auslöser ist das nutzlos.

Was mache ich falsch?

Bitte beachten Sie, dass ich nicht frage, wie GitLab WebHooks konfiguriert werden, um Jenkins Job auszulösen. Ich kann das manuell machen und es funktioniert gut. Aber wir wollen unsere Jenkins-Jobs mit dem Jenkins-Job-Builder verwalten, um einen fehleranfälligen Prozess der Konfiguration über Web-UI zu vermeiden und Änderungen in der Jobkonfiguration zu verfolgen. Wir erstellen ein Git-Repository mit Jenkins-Jobdefinitionen.

Antwort

4

Ich vermute, Sie können die triggers im job selbst setzen müssen, anstatt unter /project/jobs.

Mit den Triggern unter dem Schlüssel project erlebe ich das gleiche Symptom, das Sie tun. Keiner meiner Auslöser wird in Jenkins erstellt. Das Verschieben des Abschnitts triggers in eine job behebt das Problem für mich.

Diese yaml einen jenkins Job bauen genannt builder-test mit dem "Build, wenn eine Änderung zu Gitlab gedrückt wird" aktiviert:

- scm: 
    name: gitlab 
    scm: 
     - git: 
      url: https://gitlab.com/user/repo-name.git 
      branches: 
      - origin/master 
- job: 
    name: builder-test 
    project-type: freestyle 
    description: "builder-test desc" 
    scm: 
     - gitlab    
    triggers: 
     - gitlab: 
      trigger-push: true 
- project: 
    name: builder-test-project 
    jobs: 
     - 'builder-test' 

Getestet auf Jenkins 2.32.3 Gitlab Plugin 1.5.1 und JJB 1.6 unter Verwendung von .2

3

In Ihrer Frage haben Sie gesagt, dass die Option Build when a change is pushed to GitLab "nicht aktiviert" ist. Auf der Konfigurationsseite deaktiviert Jenkins Optionen in Dropdown-Listen, wenn diese Optionen in der aktuellen Jobkonfiguration bereits ausgewählt sind (d. H. Verwendet werden).

Die trigger-push: true Option ist wahrscheinlich, was dies in Ihrem Fall antreibt.

Sie sagen, dass Ihr Job nicht wirklich erstellt wird, wenn Änderungen an das GitLab-Repository gesendet werden?

Nach der Klärung:

Es gibt ein komplettes Beispiel here für die Versionen 1.1.26 und höher.

Enthält Ihr Code die einzubeziehenden Zweige?

+0

Ich meine, das Kontrollkästchen ist nicht aktiviert. Ich kenne Jenkins und habe den ganzen Abschnitt erweitert. Der Trigger ist nicht kofiguriert. Die Frage bezieht sich nicht auf die Nutzung der Jenkins Web UI, sondern auf Jenkins Job Builder. Was ich im Web-UI sehe, ist nur ein Symptom. Und du hast Recht. Der Job wird nicht auf Push zu GitLab aufgebaut. Ich weiß, dass ich einen Fehler in der Job-Builder-YAML-Definition machen muss. Die Frage ist, was der Fehler ist. – ElmoVanKielmo

+0

Habe meine Antwort aktualisiert –

+0

Ich habe verstanden, dass die Angabe von Verzweigungen optional ist. Werde es versuchen. – ElmoVanKielmo