슬랙에서 Jenkins 작업으로 문자열 전달


12

이상적인 세계에서 기술을 잘 모르는 직원은 Slack 명령을 사용하여 작업을 실행하고 결과를 느슨하게하여 Jenkins GUI 사용을 무시할 수 있습니다. GitHub에서 Slack Command사용하여 Jenkins에서 빌드 시작을 찾았 지만 Jenkins 작업에 대한 1 : 1 비율의 Heroku 인스턴스가 필요하다는 점을 포함하여 몇 가지 제한 사항이 있습니다.

내 생각은 사람들이와 같은 단수의 명령 /jenkins을 사용하고 한 작업으로 구문 분석되고 다른 다운 스트림을 시작하는 데 사용되는 매개 변수를 사용하는 것입니다. 그것은 하나의 느슨한 명령 / 하나의 인스턴스를 유지하지만 여전히 우리에게 필요한 모든 유연성을 제공합니다.

문제는 Jenkins에 매개 변수를 가져 오는 데 있습니다. 다음 워크 플로와 같은 것을 찍고 있습니다.

  1. /Jenkins job2 param1 param2슬랙의 사용자 유형 . 이것은 실행할 작업을 찾기 위해 매개 변수를 구문 분석하는 포괄적 인 작업을 호출합니다.

  2. 명령은 어떻게 든 우산 젠킨스 작업으로 전송됩니다. Heroku 인스턴스, 직접 통합, w / e.

  3. 우산 작업은 job2 param1 param2문자열로 수신 됩니다. (아마도 단일 매개 변수의 값으로, 아마도 여러 필드에 사전 분할되었을 수 있습니다)

  4. 우산 작업이 아직 수행하지 않은 경우 문자열을 분할하고, 사용자가 원하는 것을 수치 job2매개 변수를 사용하여 실행 param1param2.

  5. 우산 작업은 호출 된대로 다운 스트림 작업을 실행하기 위해 빌드 작업을 수행하여 결과를 사용자에게 느슨하게합니다.

나를 두드리고있는 것은 2-3 단계입니다. 슬랙에서 Jenkins 작업으로 문자열 (공백 포함)을 어떻게 전달할 수 있습니까?

전체 전제가 잘못되면 프레임에 도전 할 수 있습니다.

답변:


5

찾은 플러그인은 작업 이름이 매개 변수로 사용되므로 빌드 작업이있는 Heroku 인스턴스간에 1 : 1 비율이 없으므로 단일 Heroku 인스턴스에서 여러 작업을 실행할 수 있습니다.

작업 매개 변수에 공백을 전달하는 경우 단어 분할은 공백에 만들어 지므로 인용 부호가 변경되지 않습니다. HTML 간격 문자를 사용하여 %20작동하는지 확인할 수 있습니까?

개인적으로 나는 필터링 작업을 거치지 않고 플러그인을 사용하여 관련 매개 변수로 올바른 작업을 직접 실행하려고합니다.


1
정확히 말해서, 공간 분할은 링크 위의 몇 줄로 이루어집니다. 모든 공간에서 분할 될지 여부를 확인하기에 충분하지는 않았지만 소리처럼 들립니다.
Tensibai

맞습니다. github.com/joshdholtz/jenkins-slack-command/blob/master/ 줄에 의해 공백으로 분할 되었으므로 매개 변수 주변에 따옴표가 있는지 여부는 중요하지 않습니다.
Michael Pereira

Yep 매개 변수가 반복되어 다시 분할됩니다. 값에 공백이 포함되어 있으면 % 20을 사용하면 슬랙에 게시 할 때 작동 할 수 있지만 Jenkins 또는 슬랙이 구문 분석하거나 유지하는 방법을 모르기 때문에 테스트해야합니다
Tensibai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.