2013-06-15 38 views
10

Tôi muốn sử dụng rvm (hoặc rbenv/chruby cho vấn đề đó) để chọn các phiên bản ruby ​​khác nhau từ trong các công việc Jenkins của tôi. Theo mặc định, Jenkins sẽ sử dụng/bin/sh, mà trên Ubuntu, là dấu gạch ngang.Làm thế nào tôi có thể mặc định cho một vỏ đăng nhập để thực thi shell Jenkins

Đối với điều này để thay đổi, tôi có thể thêm

#!/bin/bash -l 

Để đầu mỗi vỏ duy nhất thực hiện chức năng ở khắp mọi nơi. Thấy như đó là rất nhiều công việc gây phiền nhiễu, tôi muốn có thể thiết lập rằng một nơi nào đó trung tâm.

Sử dụng các thiết lập cấu hình "Shell thực thi", tôi có thể làm cho nó chạy bash, thêm các thông số như '-l' tuy nhiên sẽ thất bại với

"/ bin/bash -l" -xe/tmp /hudson5660076222778817826.sh FATAL: thực hiện lệnh không thành công java.io.IOException: Không thể chạy chương trình "/ bin/bash -l" (trong thư mục "/ home/jenkins/jobs/workspace/rvm-test"): error = 2, Không có tệp như vậy hoặc thư mục

Tôi đã thử sử dụng plugin rvm cho jenkins, nhưng điều đó thậm chí không cài đặt trên phiên bản phát hành hiện tại.

Bất kỳ ý tưởng nào? :)

Trả lời

11
  1. Bạn có thể làm việc xung quanh bằng cách tạo một wrapper xung quanh bash:

    #!/bin/sh 
    # for ex.: /usr/local/bin/login-bash 
    exec /bin/bash -l "[email protected]" 
    
  2. Nếu bạn muốn sử dụng ruby ​​mặc định chỉ cần sử dụng RVM vỏ, mà đi kèm với RVM. Đăng nhập như là người dùng Jenkins và gõ:

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

để có được đường dẫn của RVM vỏ. Sử dụng đường dẫn này cho tùy chọn "Thực thi Shell".

+0

Bạn đã cứu mạng tôi. – Snowman