2016-03-24 33 views
5

Tôi muốn hiển thị cho người dùng đã kích hoạt công việc jenkins trong email bài đăng. Điều này có thể thực hiện bằng cách sử dụng plugin 'Build User Vars Plugin' và biến env BUILD_USER. Nhưng biến này không được khởi tạo khi công việc được kích hoạt bởi một bộ lập lịch biểu. Làm cách nào để đạt được điều này, tôi biết chúng tôi có plugin được gọi là - Plugin EnvInject và có thể được sử dụng ... nhưng chỉ muốn biết cách chúng tôi có thể sử dụng và đạt được giải pháp ...cách tải BUILD_USER trong Jenkins khi công việc được kích hoạt bởi bộ đếm thời gian

Trả lời

2

Điều này rất có thể trong Jenkins Có một plugin được gọi là -Xây dựng người dùng Vars Plugin để Jenkins cho thấy một tập hợp các biến môi trường mô tả người dùng đã bắt đầu xây dựng. Nó cho biến env như BUILD_USER_ID, EMAIL vv ..

Đây sẽ làm việc tốt khi xây dựng được kích hoạt bằng tay bằng một đăng nhập người dùng và cho rằng đăng nhập tên người dùng cho BUILD_USER_ID

bao bao giờ biến env này wont được thay thế/khởi tạo khi xây dựng được tự động kích hoạt bởi Jenkins timer/scheduler

đính kèm một ảnh chụp màn hình để biết chi tiết enter image description here

điều này có thể được giải quyết bằng cách tiêm một điều kiện để các công việc bằng cách sử dụng có điều kiện xây dựng Bước Plugin/Run Co ndition Plugin, trong mỗi công việc chúng ta có thể thêm điều kiện để khởi tạo biến BUILD_USER_ID chỉ khi việc xây dựng được gây ra hoặc được kích hoạt bởi Bộ định thời hoặc bộ lập lịch, bằng cách đặt điều kiện bằng cách sử dụng cụm từ thông dụng ..

2

Mã thông báo $ BUILD_CAUSE từ email-ext plugin là những gì bạn đang tìm kiếm.

Bạn có thể xem tham chiếu mã thông báo nội dung đầy đủ khi bạn nhấp vào ? ngay sau số Đính kèm nhật ký xây dựng combobox tại cấu hình nội dung email.

Một số mã thông báo được thêm bằng plugin, nhưng mã này phải sẵn có theo mặc định.

Chỉnh sửa: Như được chỉ ra bởi giám mục trong các nhận xét, khi sử dụng EnvInject plugin, mã thông báo $ BUILD_CAUSE được thay đổi để hoạt động khác nhau.

+1

'$ BUILD_CAUSE' không bao gồm người sử dụng. – bishop

+0

Đối với bạn đó là. Khi tôi bắt đầu xây dựng bằng tay tôi thấy tên của tôi trong tin nhắn. 'BUILD_CAUSE: Gestartet durch Benutzer Dominik Gebhart' Đã được dịch bởi Dominik Gebhart. Khi nó bắt đầu bằng một cuộc thăm dò được kích hoạt từ hook hoặc bộ đếm thời gian PostCommit, và nó được xây dựng dựa trên các thay đổi SCM, nó chứa 'Xây dựng wurde durch eine SCM-Änderung ausgelöst.'Translated: Xây dựng được kích hoạt bởi các thay đổi SCM'. Bạn có nghĩ nội dung của biến đã được sửa đổi bởi một plugin khác không? –

+0

Thật vậy. Plugin email-ext [định nghĩa nó] (https: //issues.jenkins-ci.org/browse/JENKINS-3166) như bạn nói, nhưng sau đó plugin env-inject [ghi đè nó] (https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin). Xin lưu ý điều này trong câu trả lời của bạn để tôi có thể lật phiếu bầu của tôi từ -1 đến +1! (Bỏ phiếu bị khóa cho đến khi chỉnh sửa bài đăng.) – bishop

2

Tôi đang sử dụng sự kết hợp của plugin 'Execute Shell' và 'Env Inject' như sau:

  1. Tạo bước thực hiện 'Thi công Shell' sử dụng thay thế tham số vỏ để ghi giá trị mặc định và lặp lại giá trị đó vào tệp. Ví dụ được đánh dấu trong ảnh chụp màn hình bên dưới.
  2. Sử dụng tệp 'Env Inject' để đọc tệp đó làm thuộc tính cần đặt.

Jenkins build steps to default variables

+0

Xem thêm http://stackoverflow.com/a/10626193/2908724 – bishop

+1

Tùy chọn này phù hợp với tôi. Đây là một chút khó chịu đối với tôi khi tôi chuyển các biến xây dựng cho một công việc khác và khi tôi cố gắng kích hoạt một tham số buildzied trên một công việc khác, nó không hoạt động khi tôi cung cấp cùng một tệp thuộc tính "vars". Tôi đã kết thúc việc lưu tệp dưới dạng một tạo tác từ công việc ban đầu và lấy ra từ tệp khác, điều này sẽ khó tạo mẫu hơn. – leeman24

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