Làm cách nào để vô hiệu hóa một số chi nhánh trong Multibranch Jenkins Builds?


10

Tôi có một công việc đa chức năng được thiết lập để điều hành bất kỳ chi nhánh nào với Jenkinsfile.

Tôi có một số tùy chọn tôi có thể nghĩ đến nếu tôi muốn xóa một nhánh khỏi danh sách các công việc đang chạy cho đường ống đa nhánh.

  1. Tôi có thể xóa chi nhánh
  2. Tôi có thể xóa Jenkinsfile trong nhánh đó

Giải pháp thứ hai là tốt, ngoại trừ tôi cần phải cam kết và đẩy nó đến repo git cho chi nhánh của tôi, và nếu chi nhánh đó được sáp nhập vào một chi nhánh khác, nó sẽ thổi bay Jenkinsfile.

Cách tốt nhất để chỉ vô hiệu hóa một số nhánh của một đường ống đa chức năng là gì?

Câu trả lời:


17

Jenkins có thể lọc các nhánh trong một đường ống đa chức năng theo tên bằng cách sử dụng ký tự đại diện hoặc biểu thức chính quy.

nhánh lọc jenkins


Bất kỳ cách nào để làm điều này trong Jenkinsfile (vì vậy nó có thể tái tạo)?
xjcl

1
Có, bạn có thể thêm when { anyOf { branch 'master'; branch 'release/**' } }trong bất kỳ giai đoạn nào (trong khai báo) hoặc if (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}trong đường ống dẫn kịch bản (hầu hết mọi nơi). Đối với tùy chọn đầu tiên, có sẵn nhiều hơn trong jenkins.io/doc/book/pipeline/syntax/#when . Dù sao, cách tốt nhất là cấu hình cái này trong plugin đường ống multibranch, như đã nêu trong câu trả lời.
biolauri

0

Chỉ cần xóa Jenkinsfile trên (các) chi nhánh mà bạn không muốn có các công việc chi nhánh tương ứng. Điều này sẽ xóa công việc chi nhánh (tất nhiên, nếu bạn đã thiết lập "Chiến lược vật phẩm mồ côi" của mình một cách thích hợp).

Từ quan điểm của Dự án Đường ống đa năng Jenkins, điều này có tác dụng tương tự như xóa chi nhánh. Điều này là do nó chỉ đơn giản là quét các nhánh có chứa Jenkinsfiles làm tiêu chí của nó khi nào tạo (hoặc xóa) một công việc nhánh tương ứng.

Hoàn nguyên cam kết khôi phục Jenkinsfile nếu / khi bạn cần công việc chi nhánh một lần nữa.

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.