2015-02-03 6 views
1

저는 현재 별도의 웹 사이트와 함께 실행중인 jenkins 인스턴스가있는 프로젝트에서 작업하고 있습니다. 워크 플로는 사용자가 웹 사이트의 링크를 클릭하여 jenkins 인스턴스의 jenkins 작업을 트리거하는 것으로 예상되는 작업입니다 . 트리거됩니다기본 Jenkins 작업 매개 변수를 무시하려면 어떻게해야합니까?

젠킨스 작업이 매개 변수의 수십을 가지고 있으며, 우리가 현재하고있는 것은 웹 사이트가 자바 스크립트와 같은 URL을 만들 것입니다 :

https://JENKINS_HOST/job/JOB_NAME/buildWithParameters?DOZENS=of&PARAMETERES=here&delay=0sec

그리고 사용자가 클릭합니다 이 (GET 요청 보내기), jenkins는 "POST를 대신 사용해야하며 계속 진행하려면 진행을 클릭하십시오."라는 약간의 경고 페이지를 보여줍니다.

이전에는 작업 상태를 볼 수있는 작업 페이지로 보내지 만, 최근에는 젠킨스를 업그레이드했으며 진행을 클릭하면 빈 화면이 나타납니다.

"빈 화면"문제에 대한 해결책은 get 대신 POST를 제출하는 것이지만 여기서는 Jenkins와 보조 웹 사이트 모두가 공개되므로 다른 문제에 대한 답변을 보았습니다. 인터넷을 사용하기 때문에 트리거 작업에 사용할 API 토큰을 생성 할 수는 없습니다. 임의의 사람이 우리 작업을 유발할 수 있기 때문입니다. 우리는 openid 플러그인과이를 기반으로하는 일부 ACL을 사용하여 보안을 처리하므로 실제로 GET 요청을 할 수 있어야하고 아직 로그인하지 않은 경우 사용자가 로그인 한 다음 로그인 한 상태로 작업을 제출할 수 있어야합니다. 사용자.

"원격으로 작업을 트리거하는"대신 빌드 매개 변수 양식을 표시하지만 GET 매개 변수로 값이 미리 채워져있는 방법이 있습니까? 이렇게하면 사용자는 매개 변수를 시각적으로 검토하고 잠재적으로 '빌드'를 클릭 한 다음 상태 업데이트를 실시간으로 확인하기 전에 수정 작업을 수행 할 수 있습니다.

내가 지금까지 찾을 수 있었던 모든 문서는 스크립트에 의해 작업이 트리거되고 컬링과 함께 POST 요청을 제출하는 방법에 대한 예제를 제공한다고 가정하지만 그런 종류의 일은 도움이되지 않습니다. 인간이 대화식으로 작업을 시작하고 현재 경험이 특별히 사용자에게 친숙하지 않기를 바랍니다.

감사합니다.

답변

1

내가 찾고있는 기능이 Build With Parameters 플러그인에 의해 제공된다는 것이 밝혀졌습니다. 이것은 내 검색에서 몇 번 나타 났지만 매번 내가 간과 한 것은 단지 내장 된 buildWithParameters 기능으로 내가 원하는 것을하지 않는다는 것입니다.

불행한 이름을 무시한이 플러그인은 내가 요청한 것과 정확히 일치합니다. GET 매개 변수에서 채워진 값으로 빌드 매개 변수 양식을 보여줍니다.

+0

그러나 EnvInject 플러그인이 작업을 수행해야합니다. 열린 버그가 있습니다 (https://issues.jenkins-ci.org/browse/JENKINS-14437). 나는 똑같은 문제에 직면 해있다. 현재로서는 Build-Parameter의 이름을 바꾸는 것이 유일한 해결책이다. EnvInject는 정상적으로 작동하지만 Build-Params를 재정의 할 수 없습니다. – chenchuk

관련 문제