Truyền chuỗi cho công việc Jenkins từ Slack


12

Trong một thế giới lý tưởng, các nhân viên ít hiểu biết về công nghệ của chúng tôi chỉ có thể sử dụng lệnh Slack để điều hành công việc và lấy lại kết quả cho họ, phủ nhận việc sử dụng GUI Jenkins. Tôi đã tìm thấy Bắt đầu xây dựng trong Jenkins bằng cách sử dụng Lệnh Slack trên GitHub, nhưng nó có một vài hạn chế bao gồm việc nó dường như yêu cầu một ví dụ Heroku tỷ lệ 1: 1 cho công việc của Jenkins, không phù hợp với mục đích của chúng tôi.

Tôi nghĩ rằng mọi người sẽ sử dụng một lệnh đơn lẻ như thế nào /jenkins, và sử dụng các tham số sau nó sẽ được phân tích cú pháp bởi một công việc và được sử dụng để khởi động những người khác ở hạ lưu. Điều đó giữ cho chúng ta một lệnh chùng / một thể hiện, nhưng vẫn cung cấp cho chúng ta tất cả sự linh hoạt mà chúng ta cần.

Vấn đề rơi vào việc lấy các tham số cho Jenkins. Tôi đang hình dung một cái gì đó giống như quy trình làm việc sau đây;

  1. Kiểu người dùng /Jenkins job2 param1 param2trong Slack. Đây là gọi một công việc ô sẽ phân tích các tham số để tìm ra những gì để chạy.

  2. Lệnh bằng cách nào đó được gửi đến công việc ô jenkins. Ví dụ Heroku, tích hợp trực tiếp, w / e.

  3. Công việc ô nhận được job2 param1 param2như một chuỗi. (Có lẽ là giá trị của một tham số, có thể được chia trước thành nhiều trường)

  4. Công việc ô chia tách chuỗi nếu nó chưa được thực hiện và chỉ ra rằng người dùng muốn job2chạy, sử dụng tham số param1param2.

  5. Công việc ô dù thực hiện một công việc xây dựng để chạy công việc xuôi dòng như đã gọi, điều này sẽ làm chậm lại kết quả của người dùng.

Đó là bước 2-3 đang làm tôi vấp ngã. Làm cách nào tôi có thể chuyển một chuỗi (có dấu cách!) Từ Slack sang công việc Jenkins của tôi?

Nếu toàn bộ tiền đề của tôi là sai, tôi cũng sẵn sàng để thử thách khung hình của mình.

Câu trả lời:


5

Plugin bạn tìm thấy không có tỷ lệ 1: 1 giữa phiên bản Heroku với công việc xây dựng vì nó lấy tên công việc làm tham số, do đó bạn có thể chạy bất kỳ số lượng công việc nào từ một phiên bản Heroku duy nhất.

Đối với việc chuyển một khoảng trắng trong một tham số công việc, việc phân chia từ được thực hiện trên các khoảng trắng để trích dẫn sẽ không thay đổi bất cứ điều gì. Bạn có thể thử sử dụng ký tự khoảng cách HTML %20và xem nó có hoạt động không?

Cá nhân tôi sẽ cố gắng sử dụng plugin để chạy công việc chính xác với các tham số liên quan trực tiếp thay vì đi qua các công việc lọc.


1
Nói chính xác, sự phân chia trên các khoảng trắng được tạo ra một vài dòng phía trên liên kết của bạn, tôi không đào đủ để xác nhận hay không nó sẽ phân chia trên tất cả các không gian, nhưng có vẻ như nó wilk
Tensibai

Bạn đã đúng, nó được phân chia trên các khoảng trắng bởi dòng này github.com/joshdholtz/jenkins-slack-command/blob/master/, vì vậy sẽ không có vấn đề gì nếu có dấu ngoặc kép hoặc không xung quanh các tham số
Michael Pereira

Các tham số Yep được lặp đi lặp lại và phân tách lại = điều này sẽ phá vỡ nếu một giá trị chứa khoảng trắng, sử dụng% 20 có thể hoạt động khi được đăng lên chùng, nhưng nó phải được kiểm tra vì tôi không biết Jenkins hoặc chùng có thể phân tích hoặc giữ chúng
Tensibai
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.