2016-11-24 5 views
0

Ich arbeite an einem Projekt, das jenkins für ci verwendet. Ich muss Github PR validieren und mehrere Überprüfungen aktualisieren. Ich benutze das Github Pull Request Builder Plugin. 1. den Code Fusseln 2. Laufeinheit Test 3. CodeabdeckungGetting Multiples prüft auf Github Pull Request mit Jenkins

ich anders die drei Statusprüfungen anzeigen GitHub wollen? Trotz des 3-Build-Berichtsstatus für github zeigt github nur "1 ausstehende Prüfung" oder "1 Statusprüfung erfolgreich abgeschlossen" an. enter image description here

Ich habe keine passende Lösung dafür gefunden, ohne in der Lage zu sein, für die Funktionalität zu entwickeln oder zu schreiben. Gibt es ein Plugin oder eine Möglichkeit, dies zu erreichen?

Ich mag diese

mit nur einem Jenkins Job passiert

Ich habe versucht, Shell-Skripte zu schreiben, die Kontrollen in Github seine reponse mit Erfolgsmeldung zu aktualisieren, aber die PR ist nicht mit dem Status zu aktualisieren.

curl -XPOST -H "Authorization: token XXXXXXXXXXXXXXXXXXXXXXXXXXXX" https://api.github.com/repos/org/reponame/statuses/$(git rev-parse HEAD) -d '{ 
    "state": "success", 
    "target_url": "${BUILD_URL}", 
    "description": "All tests were passed!", 
    "context": "jenkins-ci-unit-test" 
    }' 

Antwort

% Total % Received % Xferd Average Speed Time Time  Time Current 
05:15:26         Dload Upload Total Spent Left Speed 
05:15:26 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
100 1528 100 1350 100 178 8318 1096 --:--:-- --:--:-- --:--:-- 8333 
05:15:26 { 
05:15:26 "url": "https://api.github.com/repos/org/reponame/statuses/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
05:15:26 "id": 333333333, 
05:15:26 "state": "success", 
05:15:26 "description": "All tests were passed!", 
05:15:26 "target_url": "http://xxx.xxxxx.com/job/job1", 
05:15:26 "context": "jenkins-ci-unit-test", 
05:15:26 "created_at": "2016-11-29T10:15:26Z", 
05:15:26 "updated_at": "2016-11-29T10:15:26Z", 
05:15:26 "creator": { 
05:15:26 ....... 
05:15:26 } 
05:15:26 } 

Current check in PR

+0

Es ist mir nicht ganz klar, was Sie hier erreichen wollen. Können Sie vielleicht einen Screenshot liefern, wie Ihre aktuellen Pull-Request-Statusüberprüfungen aussehen? – kfb

+0

Es wäre einfacher mit drei Jobs, die den Arbeitsbereich freigegeben. Sie können ein Skript schreiben, das nach jeder Prüfung drei Statusprüfungen über cURL zurückgibt. Machen Sie den Kontext einfach anders. https://developer.github.com/v3/repos/statuses/#create-a-status – osowskit

Antwort

1

Der Commit-Hash, den Sie verwenden, um die Überprüfung zu aktualisieren, ist falsch. Es sollte das letzte aktuelle Commit des PR sein. Sie müssen den richtigen Commit-Hash erhalten, indem Sie den folgenden Github-API-Endpunkt aufrufen:

1

Versuchen Sie es mit

git rev-list --max-count=2 HEAD | tail -n 1 

statt

git rev-parse HEAD 

Es dauert also der vorherige Commit-Wert

Verwandte Themen