Ich versuche folgende:Bash Variable in einem Jenkinsfile Flucht
sh '''
changelog=$(git log `git describe --tags --abbrev=0 HEAD^`..HEAD --oneline)
curl --data '{"\tag_name\": \\"v0.0.${BUILD_NUMBER}\\",\"target_commitish\": \"master\",\"name\": \\"Release v0.0.$BUILD_NUMBER\\",\"body\": \\"$changelog\\",\"draft\": false,\"prerelease\": false}' https://****/api/v3/repos/****/****/releases?access_token=$JENKINS_ACCESS_TOKEN_PSW
'''
Grundsätzlich I "dynamische" Werte für tag
, name
und body
enthalten sein soll, die die Jenkins Build-Nummer ($BUILD_NUMBER
) aufgenommen verwenden und einen Bash-Variable, die das Ergebnis von git log
(changelog
) enthält.
Ich habe alle Arten von einfachen und doppelten Anführungszeichen und andere entkommene Änderungen gemacht, die ich nicht mehr sicher bin, wie es sein sollte.
Dies scheitert derzeit mit:
curl: (6) kann nicht Host lösen: variable
curl: (6) kann nicht Host beheben: Flucht
curl: (6) kann nicht Host auflösen : 9a21d71
curl: (6) Host nicht lösen kann: mehr
curl: (6) nicht Host auflösen kann: Flucht
curl: (6) Host nicht lösen kann: Versuch
curl: (6) kann nicht Host auflösen: 708ed0f
curl: (6) kann nicht Host beheben: mehr
curl: (6) kann nicht Host beheben: Flucht‘
Es ist nicht die Inhalte innerhalb des changelog
Variable verarbeiten kann.
Hmm ... das ist für mich nicht gut funktioniert, ist es nicht mit " Probleme beim Parsen von JSON ". Sehen Sie das Ergebnis von Jenkins hier: https://pastebin.com/kSVd57Zc –
@IdanAdar Was genau funktioniert nicht? Ich habe es schwer, es aus den bereitgestellten Daten zu erraten. – Leon
Nun, es scheitert aufgrund der Analyse des JSON, das ist das einzige Ergebnis, das ich bekomme. Der Pastebin zeigt den Befehl an, der ausgeführt wird. –