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)
thx für die Antwort ... – kitingChris
sieht aus wie dieses Plugin die Arbeit macht: https://wiki.jenkins-ci.org/display/JENKINS/Log+Parser+Plugin – kitingChris