2012-04-28 14 views
8

Tôi hiện đang cố gắng chạy một jenkins build cho một số nhiệm vụ dưa chuột của tôi. Tất cả đá quý của tôi đã được cài đặt bằng cách sử dụng Bundler. Các đá quý được lưu trữ trong thư mục nhà cung cấp.Không thể chạy Jenkins Build - bundle: "command not found"

Tuy nhiên, khi tôi cố gắng và chạy bundle install --deployment trong thực thi shell xây dựng bước, tôi nhận được lỗi sau:

Started by user anonymous 
Building in workspace /Users/Shared/Jenkins/Home/jobs/cukes/workspace 
[workspace] $ /bin/sh -xe/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh 
+ bundle install --deployment 
/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh: line 2: bundle: command not found 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

này được lái xe cho tôi điên! Nó chạy trên máy cục bộ của tôi mà không có vấn đề gì. Tại sao Jenkins không thể thấy đá quý của tôi?

Mọi trợ giúp sẽ tuyệt vời!

Chúc mừng, Jon

Trả lời

2

điều đầu tiên để xác minh:

  • Hãy chắc chắn rằng bundle được cài đặt trên máy tính này nơi Jenkins chạy.
  • Nếu nó được cài đặt, chắc chắn rằng nó trên con đường cho người sử dụng, theo đó Jenkins chạy

(Để xác minh path/môi trường: chèn vỏ build bước chạy env)

10

Tùy thuộc vào cách bạn cài đặt Jenkins, nó có thể chạy như một người dùng riêng biệt, thường là người dùng jenkins. Nếu bạn đã cài đặt bundle vào một thư mục chuẩn mà không nằm trong PATH mặc định, như /usr/local/bin, bạn cần phải:

  • Thêm /usr/local/bin để PATH của người sử dụng Jenkins (check ~ Jenkins/.bashrc) hoặc
  • Định cấu hình biến môi trường PATH trong cấu hình toàn cầu Jenkins (hoặc cấu hình nô lệ nếu xây dựng trên nô lệ) hoặc
  • Sửa đổi kịch bản xây dựng để tham chiếu bundle bằng tên đường dẫn đầy đủ.
+0

Xin chào, tôi đã thêm/bin/bash thay vì/usr/bin/bash không khả dụng. Tôi đang sử dụng centos. –

1

Nếu bó được cài đặt trong /usr/local/bin/bundle (xác định điều này với which bundle), bạn chỉ có thể thêm một liên kết tượng trưng để bó trong /usr/bin như vậy:

ln -s /usr/local/bin/bundle /usr/bin/bundle

0

Bạn có thể thấy đâu là bundle được cài đặt bởi chạy which bundle và chạy lệnh bundle từ đó