2013-06-15 1 views
10

Ich möchte rvm (oder rbenv/chruby für diese Angelegenheit) verwenden, um verschiedene Ruby-Versionen aus meinen Jenkins-Jobs auswählen. Standardmäßig verwendet Jenkins/bin/sh, was unter Ubuntu Bindestrich ist.Wie kann ich standardmäßig eine Login-Shell für Jenkins Shell-Ausführung

Um dies zu ändern, ich

#!/bin/bash -l 

Nach oben jedem einzelnen Shell-Funktion überall ausführen hinzufügen können. Da dies eine Menge lästiger Arbeit ist, würde ich gerne in der Lage sein, das irgendwo zentral zu setzen.

Mit der "Shell ausführbar" Konfigurationseinstellung, kann ich es bash laufen, Hinzufügen von Parametern wie '-l' wird jedoch mit

"/ bin/bash -l" -xe/tmp scheitern /hudson5660076222778817826.sh FATAL: Befehlsausführung fehlgeschlagen java.io.IOException: Programm "/ bin/bash -l" (im Verzeichnis "/ home/jenkins/jobs/workspace/rvm-test") kann nicht ausgeführt werden: error = 2, keine solche Datei oder Verzeichnis

Ich versuchte mit dem Rvm-Plugin für jenkins, aber das installiert nicht einmal auf der aktuellen Version.

Irgendwelche Ideen? :)

Antwort

11
  1. könnten Sie umgehen, indem Sie einen Wrapper um bash erstellen:

    #!/bin/sh 
    # for ex.: /usr/local/bin/login-bash 
    exec /bin/bash -l "[email protected]" 
    
  2. Wenn Sie den Standard Rubin verwenden möchten nur die RVM-Shell verwenden, die mit rvm kommt. Melden Sie sich als Benutzer jenkins und Typ:

    $ which rvm-shell 
    /home/jenkins/.rvm/bin/rvm-shell 
    

den Pfad der RVM-Schale zu erhalten. Verwenden Sie diesen Pfad für die Option "Shell ausführbare Datei".

+0

Sie haben mir das Leben gerettet. – Snowman

Verwandte Themen