Làm thế nào để tôi nhân bản một công việc ở Jenkins?


231

Jenkinscó sẵn GerritPlugin để khi chúng tôi đăng ký Gerrit, Jenkinsthực hiện quá trình xây dựng và nếu thành công, thì sửa đổi trong Gerritđược xác minh. Nếu việc xây dựng thất bại thì không được. Hiểu biết của tôi là điều này được thực hiện thông qua các công việc được thiết lập Jenkins. Bây giờ chúng tôi đã tạo một nhánh mới ( git) và tôi đoán rằng tôi cần sao chép các công việc hiện có trỏ đến nhánh khác để cùng một quy trình công việc này xảy ra và các bản dựng được thực hiện trên mỗi cam kết. Ai đó có thể giải thích làm thế nào tôi sẽ nhân bản những công việc này? Tôi dường như không thấy một cách nào để làm điều đó thông qua UI và thậm chí tôi không thể thấy một cách để liệt kê các công việc ra ngoài thông qua UI.


7
Bạn sẽ có thể "Sao chép công việc hiện tại" là một trong các tùy chọn trên trang Công việc mới. Xem stackoverflow.com/questions/3133537/ trên
nofinator

Câu trả lời:


180

Để sao chép một công việc hiện có, hãy đến http://your-jenkins/newJobvà sử dụng tùy chọn "Sao chép công việc hiện tại". Nhập tên của công việc hiện tại - Jenkins sẽ xác minh xem nó có tồn tại hay không.

Tab mặc định trên trang nhất của Jenkins sẽ liệt kê tất cả các công việc hiện có, nhưng có thể người tiền nhiệm của bạn đã xóa tab. Bạn có thể tạo một tab mới liệt kê tất cả các công việc từhttp://your-jenkins/newView.


hãy cẩn thận, trong khi sao chép công việc hiện có, bạn cần cung cấp tên (không được mã hóa như trong url trong khi truy cập công việc), vì vậy nếu tên công việc có khoảng trắng, chúng sẽ được giữ nguyên. Một thời gian ngắn, chỉ đặt tên gốc của công việc, không có gì khác.
Yauhen

Với plugin ez-template được cài đặt "Sao chép công việc hiện tại" được áp dụng cho một mẫu hoặc cho một công việc bằng cách sử dụng một mẫu tạo ra một công việc mới phụ thuộc vào mẫu. Nếu bạn thực sự muốn một bản sao độc lập, bạn có thể xóa Use another job as a templatecấu hình.
dùng598656

146

Bạn có thể nhân bản một công việc:

  1. Nhấp vào liên kết 'Mục mới'
  2. Đặt tên mới cho công việc của bạn
  3. Chọn nút radio 'Sao chép mục hiện có'
  4. Đặt tên công việc mà bạn muốn sao chép
  5. Nhấp vào 'OK'

Cuối cùng, bạn có công việc mới, phản ánh tất cả các tính năng của công việc nhân bản của bạn.


117

Jenkins 2.9

  1. Jenkins> Mục mới

    Mặt hàng mới của Jenkins

  2. Nhập tên mặt hàng - Ví dụ: "MY_CLONE"

    Nhập tên mặt hàng

  3. Chỉ định công việc nguồn ( Sao chép từ )> OK

    Khi bạn bắt đầu nhập tên, các giá trị hiện tại sẽ được tìm thấy. Lưu ý rằng đây là trường hợp nhạy cảm.

    Sao chép từ OK

  4. Nhấp vào Save nếu bạn muốn giữ các giá trị mặc định.

  5. Bây giờ cả hai công việc đều có sẵn ở cùng một vị trí:

    Xem việc làm


3
Hình ảnh đáng giá ngàn lời nói. Không thể tìm thấy sự thả xuống nhỏ cho cuộc sống của tôi. Mulțumiri
michaelok

34

New Item> Project Name= abc> Thay vìFreestyle job , chọnCopy from job name of already existing jobs

Nếu bạn đang ở trong thư mục mà bạn muốn sao chép ra khỏi thư mục thì hãy sử dụng ../.


Cảm ơn đã đề cập../
Satevg

14

nếu bạn muốn sao chép trong cùng Jenkins nhưng trong các thư mục con khác nhau, hãy tạo mục mới -> sử dụng bản sao từ. Công việc mới sẽ được nhân bản trong cùng thư mục. Sau đó sử dụng tùy chọn di chuyển để di chuyển nó trong thư mục mong muốn


Đây là những gì tôi đã sử dụng. Chỉ cần sao chép vào cùng một thư mục thường là không đủ. Cảm ơn!
donmartin

11

Tất cả các câu trả lời trên là tốt. Nhưng nếu bạn đã tạo "thư mục" cho công việc của mình, mọi thứ sẽ hơi khác một chút.

Bấm vào thư mục mà bạn muốn tạo một công việc mới. Sau đó nhấp vào "Mục mới" trên menu bên trái. Bây giờ URL "công việc mới" của bạn sẽ trông như thế này (giả sử bạn đang tạo công việc mới trong "thư mục của tôi"):

http://my-jenkins:8080/job/my-folder/newJob

Dưới Enter an item name, nhập tên công việc mới mong muốn của bạn. Sau đó sử dụng Copy fromhộp văn bản ở phía dưới. Nhập con đường công việc của anh nguồn công việc.

Ví dụ: Nếu công việc nguồn của bạn nằm trong thư mục src-foldervà tên của công việc là src-job, bạn sẽ phải nhậpsrc-folder/src-job "Sao chép từ".

Hy vọng nó giúp.


Tôi vẫn đang cố gắng tìm cách sao chép các công việc cấu trúc thư mục chéo: Jenkins thêm "công việc" theo nghĩa đen cho mỗi mục mới là một thư mục, ví dụ: tôi có một công việc tại localhost: 8080 / job / x / job / y / job_1 , trong đó x và y là các thư mục. công việc_1 là công việc thực sự. Làm cách nào tôi có thể sao chép công việc này vào localhost: 8080 / job / x / job / z / job_1 ? Tôi đã thử tất cả các tham chiếu đến công việc nguồn không có may mắn.
Heinz

1
Tới localhost:8080/job/x/job/y/job_1. Trên trang đó, bạn sẽ thấy Full project name. Hãy thử sử dụng nó khi bạn chỉ định nguồn.
Bhushan

Nếu bạn có 2 thư mục folder1folder2ở cùng cấp độ và bạn muốn sao chép folder1\job1vào folder2\job1, bạn có thể tạo một mục mới vào thư mục folder2và sau đó sử dụng ..để quay lại cấu trúc thư mục và sao chép ../folder1/job1.
DRz

10

Bạn cũng có thể sử dụng liên kết Sao chép dự án plugin .

Điều này sẽ thêm một liên kết trên bảng điều khiển bên trái của dự án của bạn:

nhập mô tả hình ảnh ở đây

Màn hình sau sẽ hỏi tên Công việc mới:

nhập mô tả hình ảnh ở đây


10

Trong trường hợp của tôi, tôi đã phải sao chép một công việc từ một ví dụ jenkins sang một ví dụ khác.

Vì vậy, trước tiên tôi xem cấu trúc thư mục của Jenkins cũ (tên công việc / thư mục; cũng lưu ý cấu hình) và sau đó theo cấu trúc thư mục của jenkins mới, sau đó tôi tạo một thư mục có cùng tên / công việc và sao chép qua tệp config.xml theo thư mục mới được tạo này.

Sau đó, dưới "Quản lý Jenkins", tôi nhấn "Tải lại cấu hình từ đĩa". Đó là nó.


cảm ơn về mẹo "Tải lại cấu hình từ đĩa"!
Aliza

1
Vâng, làm như vậy khi tôi phải sao chép hàng loạt một số mục, trước khi "Tải lại từ đĩa", bạn cũng có thể thực hiện một số phép thuật thủ công cần thiết trong CLI như tìm kiếm / thay thế một số tham số, đoạn văn bản, v.v. trong config.xml . Lưu ý rằng tên của thư mục chứa config.xml là tên của Công việc của bạn (do đó, nếu không giống như Rohit, bạn cần tạo một Công việc mới, chỉ cần đặt cho nó một tên khác).
RAM237

Theo tôi, khi bạn có một vài cấp độ thư mục với nhiều công việc bên trong, đây là lựa chọn tốt nhất.
cabreracanal

3

Tạo một Mục mới và đi đến tùy chọn cuối cùng bạn sẽ tìm thấy để sao chép từ hiện tại, chỉ cần viết tên công việc hiện tại của bạn và bạn sẽ có bản sao của dự án đó để làm việc.


1

Tôi đã không thể sao chép công việc của Jenkins từ thư mục con. copy fromtùy chọn không hiển thị đề xuất mà tôi đang tìm kiếm. Không sử dụng đề xuất sao chép tên công việc không hoạt động.

Vì vậy, nếu bạn muốn tạo một công việc từ thư mục bên ngoài, trước tiên bạn cần tạo công việc trong thư mục con và sau đó di chuyển nó vào thư mục khác nơi bạn cần đặt nó.



0

Tất cả các câu trả lời ở đây là siêu hữu ích nhưng bỏ lỡ một lỗi rất kỳ lạ về Jenkins. Sau khi bạn đã chỉnh sửa cấu hình công việc mới, đôi khi nếu mức thu phóng của bạn quá cao, bạn có thể không thấy tùy chọn savehoặc applynút. Nút có mặt trên trang và bị ẩn bởi mức thu phóng của bạn, bạn phải thu nhỏ cho đến khi bạn thấy nút ở dưới cùng bên trái của trang.

Lạ thật, tôi biết!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.