2014-06-25 19 views
6

Tôi đang tìm một công việc của Jenkins và cố gắng hiểu nó.Thư mục làm việc trong Jenkins sau khi thực thi một hộp lệnh shell là gì?

Tôi có một Execute vỏ hộp lệnh trong Build phần của tôi:

> mkdir mydir 
> cd mydir 
> 
> svn export --force https://example.com/repo/mydir . 

Khi Jenkins được thực hiện thực hiện lệnh đó, và di chuyển sang xây dựng các bước tiếp theo, thư mục làm việc của nó là gì? workspece-root/ hoặc workspace-root/mydir?

Khi bước tiếp theo, tôi có Gọi mục tiêu Maven cấp cao nhất (vẫn còn trong mục Xây dựng).

Điều tôi thực sự muốn biết là: tại sao điều đó thực thi thành công?
Có phải vì Jenkins tự động di chuyển trở lại thư mục workspace-root/ sau khi thực hiện hộp lệnh trình bao hay là vì công việc tiếp theo là công việc "cấp cao nhất" và do đó Jenkins thay đổi trở lại workspace-root/?

Trả lời

10

Mỗi build step là một quá trình riêng biệt mà Jenkins sinh ra. Họ không chia sẻ bất cứ điều gì, không phải thư mục hiện tại, cũng như các biến môi trường được thiết lập/thay đổi trong phạm vi build step. Mỗi mới build step bắt đầu bằng cách đẻ trứng một quá trình mới tắt quá trình cha mẹ (người chạy Jenkins)

Nó không phải là Jenkins "di chuyển trở lại" để $WORKSPACE. Đó là Jenkins loại bỏ phiên trước đó.

+0

Từ khóa luôn bắt đầu bằng $ WORKSPACE không? Và bạn có thể chỉ cho tôi một phần trong tài liệu chính thức giải thích điều đó không? :) – Christian

+3

Có, luôn luôn '$ WORKSPACE'. Hầu hết các plugin sẽ luôn liên quan đến '$ WORKSPACE'. Nếu bạn nhấp vào biểu tượng dấu hỏi ở bên phải của bước thực thi 'execute shell', thì cửa sổ pop up help đề cập rằng nó thực hiện tương đối với' $ WORKSPACE' – Slav

0

Gần đây tôi đã thấy rằng nếu bạn in CWD, tôi sẽ nhận được Project_NAME. Ví dụ: D: \ jenkins \ workspace \ My_Project

Bất kỳ tập lệnh nào bạn có thể đang chạy đều không được tìm thấy. Do đó chúng tôi có thể thực hiện "đường dẫn CD" trước khi chúng tôi bắt đầu các tập lệnh.

Các vấn đề liên quan