Tôi đang cố gắng di chuyển một kịch bản lệnh Ant mà tôi đã viết để xây dựng và triển khai các dự án từ bên trong khung công tác Jenkins (thay vì được kích hoạt từ móc hậu SVN, đó là cách chúng tôi bước đầu tiên tiếp cận mọi thứ). Mọi thứ đều tuyệt vời, ngoại trừ tôi cần các tệp stage cho bước triển khai và tôi muốn đưa chúng vào thư mục 'build' mà Jenkins tạo cho công việc (và kể từ build.xml của tôi sống ở một vị trí không thuộc dự án cụ thể, $ { basedir} và $ {user.dir} không trỏ đến vị trí mong muốn).Làm thế nào để xác định thư mục xây dựng Jenkins từ Ant?
trong cấu hình Jenkins, tôi đã thiết lập như sau:
[Jenkins] Build Ghi Root Directory: E:/xây dựng/$ {} ITEM_FULLNAME
[Job Cụ thể] Build file : C: \ vc-tools \ shadow \ build.xml
khi chạy bản dựng, tập lệnh được khởi chạy phù hợp và tạo thư mục dựng công việc cụ thể, ví dụ:
E: \ xây dựng \ Test \ 2012-08-07_12-51-21
Tôi muốn nhận được ở thư mục này từ bên trong xây dựng kịch bản, nhưng không thể tìm ra cách. một số trong những điều tôi đã cố gắng:
[echo] ${basedir}: C:\vc-tools\shadow
[echo] ${user.dir}: C:\vc-tools
[echo] ${env.workspace}: C:\Program Files (x86)\Jenkins\workspace\Test
[echo] ${env.build_id}: 2012-08-07_12-51-21
[echo] ${jenkins_home}: C:\Program Files (x86)\Jenkins
[echo] ${BuildDir}: E:/builds/${ITEM_FULLNAME}
lưu ý: cho rằng cuối cùng, tôi đã cố gắng đi qua trong:
BuildDir=E:/builds/${ITEM_FULLNAME}
như một thuộc tính cấu hình từ công việc trong vòng Jenkins (rõ ràng mở rộng $ {} không diễn ra trong ngữ cảnh này).
theo documentation, không có biến môi trường cụ thể nào được đặt thành đường dẫn thư mục dựng đầy đủ - tôi có thể giả mạo bằng cách mã hóa phần tử E: \ builds root và tacking trên $ {env.build_id}, nhưng hy vọng sẽ có một cách dễ dàng hơn để truy cập đường dẫn đầy đủ từ thứ mà Jenkins phơi bày (hoặc thuộc tính Ant và biến môi trường) để làm cho kịch bản linh hoạt hơn.
Tôi đang sử dụng phiên bản Jenkins 1.476.
cảm ơn
Có vẻ như bạn đang làm điều gì đó rất kỳ quặc, điều mà tôi hoàn toàn không hiểu. Tại sao tệp build.xml không nằm trong thư mục gốc của dự án bạn đang xây dựng? Thông thường bạn chỉ cần cấu hình Jenkins kéo các tệp dự án ra khỏi hệ thống SCM và sau đó chạy bản dựng ... Tất cả điều này xảy ra trong "không gian làm việc" mà Jenkins quản lý cho công việc xây dựng đó. –
Tại sao bạn cần thư mục? Bạn có thể sử dụng đường dẫn tương đối an toàn –
@ MarkO'Connor: - Tôi có một kịch bản xây dựng chung có thể được thừa hưởng cho một số dự án (có một tệp thuộc tính dự án cụ thể mà tập lệnh kéo xuống để đủ điều kiện làm việc của nó, nhưng tôi không t xem giá trị, tại thời điểm này, trong việc sao chép cùng một tệp build.xml trên nhiều, tương tự, các dự án). – rguilbault