2016-05-13 21 views
0

Ich ließ Jenkins RPM mit nach der Installation Scriptlets erstellen, die mehrere Aufgaben während der Installation durchführen. Einer von denen kann ein Fehler wierpm Scriptlet Fehler sendet keine ordnungsgemäße Exit-Code während der Installation

warning: %post(test-1-1.noarch) scriptlet failed, exit status 1 

scheitern und senden Leider ist diese in einem richtigen Exit-Status von der Umdrehungen pro Minute Anruf nicht zu führen scheint.

# echo $? 
0 

Eigentlich muss ich die Drehzahl einen Exit-Zustand installieren senden> 0

Gibt es eine versteckte rpm-Option, die mir fehlt, oder gibt es etwas in meinem scriptlet fehlt? Diese

ist, wie mein Scriptlets aussehen (erstellt von Paket-Manager über jenkins mit Variablen Effing <% = installPath%>, <% = WebUser%> bei der Erstellung eingefügt)

#!/usr/bin/env bash 

INSTALLPATH=<%= installPath %> 
WEBUSER=<%= webUser %> 
HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1` 

mkdir -p $INSTALLPATH/app/cache 
setfacl -R -m u:"$HTTPDUSER":rwX -m u:"$WEBUSER":rwX $INSTALLPATH/app/cache 
setfacl -dR -m u:"$HTTPDUSER":rwX -m u:"$WEBUSER":rwX $INSTALLPATH/app/cache 

mkdir -p $INSTALLPATH/app/logs 
setfacl -R -m u:"$HTTPDUSER":rwX -m u:"$WEBUSER":rwX $INSTALLPATH/app/logs 
setfacl -dR -m u:"$HTTPDUSER":rwX -m u:"$WEBUSER":rwX $INSTALLPATH/app/logs 

mkdir -p $INSTALLPATH/web/cache 
setfacl -R -m u:"$HTTPDUSER":rwX -m u:"$WEBUSER":rwX $INSTALLPATH/web/cache 
setfacl -dR -m u:"$HTTPDUSER":rwX -m u:"$WEBUSER":rwX $INSTALLPATH/web/cache 

sudo su $WEBUSER -c "php $INSTALLPATH/vendor/sensio/distribution-bundle/Resources/bin/build_bootstrap.php" 
sudo su $WEBUSER -c "php $INSTALLPATH/app/console cache:warmup" 

sudo su $WEBUSER -c "php $INSTALLPATH/app/console assets:install $INSTALLPATH/web" 

sudo su $WEBUSER -c "php $INSTALLPATH/app/console doctrine:database:drop --if-exists --no-interaction --force" 
sudo su $WEBUSER -c "php $INSTALLPATH/app/console doctrine:database:create --if-not-exists" 
sudo su $WEBUSER -c "php $INSTALLPATH/app/console doctrine:schema:create" 

das RPM installieren heißt von

#!/bin/sh 
# 
# allows jenkins to install rpm as privileged user 
# 
# add the following line to /etc/sudoers: 
# jenkins ALL = NOPASSWD: /usr/local/sbin/jenkins-rpm-install 
# 

artifact=$1 

rpm -vv --install --force $artifact 
err_code=$? 

if [[ err_code > 0 ]]; then exit 1; fi 

Alle Empfehlungen sind willkommen.

(Diese Frage ist ein Follow-up von jenkins shall fail on errors during rpm install job)

Antwort

1

Umdrehungen pro Minute (von @ rpm.org, nicht von @ rpm5.org) wählte Fehler aus% post als nicht-tödlich zu behandeln (dh der Exit-Code ist Null) vor einigen Jahren. Es gibt keine Re-Enabler-Optionen, die mir bekannt sind. Nun, Sie können die Warnung erkennen: Nachricht, anstatt den Exit-Code zu überprüfen.

+0

thx für die Antwort ... – kitingChris

+0

sieht aus wie dieses Plugin die Arbeit macht: https://wiki.jenkins-ci.org/display/JENKINS/Log+Parser+Plugin – kitingChris