4

Ich verwende "eb deploy" in meinem Skript für die fortlaufende Integration. Ich habe 2 Probleme damit:AWS 'eb deploy' gibt immer den Returncode zurück 0

  • Es gibt immer Rückkehrcode 0 zurück, auch wenn es einen Fehler gibt. Dies unterbricht meine Bereitstellungs-Pipeline, da es keinen Weg gibt, einen Fehler zu erkennen.

  • Die Ausgabe wird erst angezeigt, nachdem der Befehl beendet wurde.

  • Gibt es eine Möglichkeit, 'eb deploy' als normales Skript zu verwenden und korrekte Fehlercodes zurückzugeben?

    +1

    Sie sind nicht allein https://forums.aws.amazon.com/message.jspa?messageID=713900. Vielleicht nehmen Sie das mit Amazon auf und sie werden Ihnen direkt helfen, da sie diese Person zu haben scheinen. Sie können auch die Ausgabe von Rohtext analysieren und nach der Fehler-/Erfolgsmeldung suchen, anstatt sich auf den Beendigungscode zu verlassen. – dotcomly

    Antwort

    7

    Dies ist ein bekanntes Problem, das stromaufwärts here gemeldet wurde. Sie können es beheben, indem Sie grep auf eine ziemlich direkte Weise verwenden. Anstelle von:

    eb deploy 
    

    Verwenden Sie grep, um die Erfolgsstring zu erhalten. Dies wird wieder ein Nicht-Null-Status (dh: failure), wenn sie nicht gefunden werden kann:

    eb deploy | tee /dev/tty | grep "update completed successfully" 
    

    Hinweis, wie ich tee verwendet, um sicherzustellen, dass der Ausgang noch auf der kontinuierlichen Integration Portal zu sehen ist (in mein Fall).

    +0

    Meine Lösung war etwas ähnlich, obwohl komplexer und weniger zuverlässig: Ich habe 'eb deploy' in ein Shell-Skript geschrieben und suche nach "ERROR:" statt nach "Update erfolgreich abgeschlossen". Vielen Dank! – andr111