jenkins shall fail on errors during rpm install job

I have an deployment task that is executed on my test machine. The purpose is to test the freshly build rpm from jenkins on the very same machine.

Therefore I set up a deploy job in jenkins that executes the following shell lines:

  • Accessing Teamcity git Change log in a build step
  • Edit Git alias in command line
  • Authentication failed on tfs server
  • Getting a gitprompt to run when executing commands
  • Bash script for defining flags depending on current git branch
  • Can anyone explain, why “git status” touches the .git directory?
  • artifact=$(ls build/*.rpm | head -1)
    sudo /usr/local/sbin/jenkins-rpm-install $artifact
    rm -rf build/
    

    To install the rpm I made a small shell script that jenkins has exclusive sudo permissions for.

    #!/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
    

    Now I have the problem: Whenever the rpm install fails jenkins does not recognize the error code and marks the build as success.

    Does anyone have an idea how to properly solve this?
    Also tips to improve this process are welcome.

  • Run docker after building own image
  • Graphical Git clients
  • Jenkins unable to invoke ANT in MAC Slave
  • Capistrano 3 at deployment on Ubuntu 12.04 LTS gives error
  • What's the most proper way to remove an already deleted branch from tab-completion history?
  • Firefox crash when I run selenium unit test
  • 2 Solutions collect form web for “jenkins shall fail on errors during rpm install job”

    What about simply checking for rpm error’s code in your script and report it to Jenkins yourself?

    rpm -vv --install --force $artifact
    error_code=$?
    if [[ err_code > 0 ]]; then exit $?; fi
    

    Or with overload:

    rpm -vv --install --force $artifact || exit $?
    

    If within configuration you are using execute shell step Jenkins will mark build as failed if exit code!= 0.

    If might be sufficient to alter your script by adding exit $? at the end.

    Git Baby is a git and github fan, let's start git clone.