2013-06-15 17 views
10

Voglio usare rvm (o rbenv/chruby per quella questione) per selezionare diverse versioni di ruby ​​dai miei lavori Jenkins. Per impostazione predefinita, Jenkins utilizzerà/bin/sh, che su Ubuntu, è dash.Come default per una shell di login per l'esecuzione della shell di Jenkins

Per questo per cambiare, posso aggiungere

#!/bin/bash -l 

Verso l'alto di ogni singolo guscio funzione di eseguire in tutto il mondo. Visto che è un lavoro molto fastidioso, mi piacerebbe essere in grado di ambientarlo da qualche parte centrale.

Utilizzando l'impostazione di configurazione "Shell eseguibile", posso farlo funzionare bash, aggiungendo parametri come '-l' comunque fallirà con

"/ bin/bash -l" -xe/tmp /hudson5660076222778817826.sh FATAL: esecuzione comando non riuscita java.io.IOException: impossibile eseguire il programma "/ bin/bash -l" (nella directory "/ home/jenkins/jobs/workspace/rvm-test"): errore = 2, No such file o directory

Ho provato a utilizzare il plug-in rvm per jenkins, ma questo non viene nemmeno installato nella versione attuale.

Qualche idea? :)

risposta

11
  1. Si potrebbe ovviare mediante la creazione di un wrapper per bash:

    #!/bin/sh 
    # for ex.: /usr/local/bin/login-bash 
    exec /bin/bash -l "[email protected]" 
    
  2. Se si desidera utilizzare il rubino di default basta usare l'rvm-shell, che viene fornito con rvm. login come utente Jenkins e tipo:

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

per ottenere il percorso del RVM-shell. Utilizzare questo percorso per l'opzione "Eseguibile shell".

+0

Mi hai salvato la vita. – Snowman

Problemi correlati