2016-05-26 13 views
0

Ich integrierte meine GitHub-Repository mit AWS Codepipeline und das mit Jenkins über das AWS Codepipeline-Plugin in Jenkins. Jenkins ist in einem EC2-Server installiert. Ich habe eine IAM-Rolle für die EC2-Instanz erstellt, die meine Jenkins hält. Ich habe auch AWS CodePipeline Publisher als Post-Build-Aktion eingerichtet.Code von GitHub geht nicht in Jenkins - AWS CodePipeline Integration mit Jenkins und Github

Allerdings wird mein Code von GitHub erfolgreich von AWS Codepipeline übernommen (Die Quellstufe ist erfolgreich), aber die Buildstufe schlägt mit einem Timeoutfehler nach 1 Stunde fehl.

Wenn ich mit dem Jenkins-Arbeitsbereich in der EC2-Instanz überprüft habe, ist der Arbeitsbereich für das Projekt leer.

Das heißt, der von GitHub übernommene Code wird nicht von der AWS Codepipeline in den Arbeitsbereich von Jenkins eingefügt.

Ist dies ein Problem bei der Aktivierung der Sicherheit für Jenkins? Aber eigentlich habe ich versucht, die Sicherheit zu deaktivieren. Aber ich habe den gleichen Fehler.

Ihre Hilfe wird sehr geschätzt.

Antwort

0

im Build-Trigger Abschnitt, haben Sie sich Poll SCM?

Hier konfigurieren Sie, wie oft Jenkins AWS CodePipeline für neue Aufgaben abfragen soll. Zum Beispiel: H/5 * * * * (alle 5 Minuten).

Etwas anderes, das in den Sinn kommt, ist ein Problem mit den Anmeldeinformationen. Wenn Sie Ihr Jenkins-Projekt öffnen, sollte links unter "Configure" (Konfigurieren) ein AWS CodePipeline-Abrufprotokoll-Link angezeigt werden, und Sie sollten dort einen Fehler sehen, wenn das Plugin nicht abfragen kann.

0

Als Erstes - Stellen Sie sicher, dass Jenkins, die auf der EC2-Instanz ausgeführt werden, über die IAM-Rolle und die zugehörigen Berechtigungen zum Ausführen von Aktionen mit der AWS-Code-Pipeline verfügen.

zweite Sache - unter Übersetzungs Trigger Wählen Sie im Abschnitt Poll SCM und fünf Sternchen durch Leerzeichen in Schedule getrennt eingeben.

Bitte folgen Sie dem Link, um weitere Informationen http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-4.html#getting-started-4-get-instance

0

Dies ist eine alte Frage, aber hatte das gleiche Problem. Nach einiger Recherche fand ich heraus, dass in meinem Setup die Namen der Eingabe- und Ausgabeartefakte fehlten.

Schritte zum Überprüfen/Beheben des Problems Sie benötigen die AWS CLI installiert. Verwenden Sie: aws Codepipeline Get-Pipeline - Name [Name der Pipeline]> pipeline.json Öffnen Sie die Pipeline und bestätigen Sie, dass 1. Das Ausgabeartefakt in der Quellstufe ist das gleiche wie das Eingabeartefakt in der Build-Phase. 2. Das Ausgabeartefakt in der Build-Phase ist dasselbe wie das Eingabeartefakt in der Beta-Phase (oder was auch immer Ihre Bereitstellungsphase ist).

Sie können überprüfen, ob die Dinge in Ordnung sind, indem Sie zu Ihrem S3 gehen. Im Bucket für Ihre Code-Pipeline sollten Sie einen Ordner mit demselben Namen wie das Ausgabeartefakt in Ihrer Quellstufe sehen. Darin befinden sich verschiedene Zip-Dateien.Laden Sie einen herunter und entpacken Sie, um zu überprüfen, ob der Upload von GitHub korrekt war.

Ich vermute, dass das Problem für mich passierte, weil ich mit einer 2-Schritt-Pipeline begann und dann den Build-Prozess später hinzugefügt - Kann auch mit Ihnen passieren, wenn Sie nicht den Jenkins-Server bereit vor der Erstellung der Pipeline und damit Sie haben Versetze das später.

Verwandte Themen