1

내 요구 사항은 매개 변수화 된 Jenkins 작업이 있으며 스크립트를 실행해야하는 환경 변수 값을 묻습니다. 값을 주면 젠킨은 그 값을 받아 config.properties 파일에서 업데이트해야합니다.빌드하기 전에 Jenkins에서 변수 값을 가져 와서 config.properties에서 업데이트하십시오.

config.properties 파일 :

글로벌 변수 문자열 매개 변수

이름 : ENV

기본

ENVIRONMENT = ${env} 

는 젠킨스, 나는 내 전역 매개 변수로 정의 값 : SIT1

(평판이 좋지 않아 이미지를 게시 할 수 없습니다.)

그래서 지금 빌드를 클릭하면 변수 env에 대한 값을 묻고 실행을 시작합니다. 그러나 config.properties의 환경 변수는 빌드 전 제공된 값을 식별하지 않으므로 오류가 발생합니다.

P.S- 나는 EnvInject Plugin이 설치되어 있다면 도움이된다면, 어떻게 사용하는지 안내해주세요. 제 질문이 혼란 스러우면 친절하게 제가 제공 할 수있는 포인트를 제안하십시오.

+0

그래서 제대로 이해했다면 Jenkins에서 설정 한 환경 변수를 스크립트에 전달할 수 없습니다. 전역 매개 변수로 설정했지만 스크립트에 전달할 수는 없습니다. 맞습니까? – 23ars

+0

저는 젠킨스를 처음 보았습니다. 따라서 그것이 가능하다는 말은 할 수 없습니다. 그러나, 내 요구 사항은 당신이 말하는 것과 같습니다. Jenkins의 환경 변수 값을 내 스크립트 (config.properties)로 전달하고 싶습니다. 가능하지 않다면 다른 옵션을 제안 해주십시오. – Aditya

답변

0

그래서 실제로 환경 변수를 스크립트에 "주입"할 수 있는지 확실하지 않습니다. 얼마 전에 필자는 일부 펄 스크립트를 처리해야했던 Jenkins 용 플러그인을 작성했으며 환경 변수를 처리하기는 정말 어려웠습니다.

EnvInject 플러그인 정보 거의 모든 것을 말할 수 없으며 사용하지도 않았습니다. 예를 들어, 시도 할 수있는 것은 쉘 또는 일괄 처리 명령을 실행하는 "빌드 - 액션"옵션을 사용하는 것입니다. 환경 변수를 설정할 수 있습니다. 셸의 경우 일괄 set VARIABLE=value 또는 export VARIABLE=value입니다. 그런 다음 스크립트에서 변수의 값을 쉽게 얻을 수 있습니다.

이것은 어떻게 든 스크립트에 변수를 전달하는 쉽고 안전한 방법입니다.

저는 젠킨스를 만지지 않았으므로 거의 3 개월이 지났습니다. 글로벌 속성이 실제로 스크립트에 전달되지 않은 경우입니다. 스크립트가 PC에서 실행되었으므로 환경 변수를 사용한다면 설정해야합니다. Jenkins에서 설정 한 변수를 전달하려면 플러그인을 컴퓨터에 설정/내보내기해야하며 해당 플러그인에 구현 된 플러그인이 있는지 확실하지 않습니다.

제대로 작동하는지 알려 주시면 해결책을 찾아 보겠습니다. 계속 연락하십시오!

+1

감사합니다! 나는 당신의 생각을 사용했고 Jenkins -DargLine = "- Denv = $ Environment"에있는 'Build'메뉴의 'JVM options'에서 다음 명령을 사용하고 있습니다. $ 환경 값은 빌드하기 전에 사용자가 물어 보는 곳입니다. 내 스크립트에서 'ENV = System.getProperty ("env");'명령으로이 값을 반입합니다. 나에게 방법을 보여 주셔서 다시 한번 감사드립니다 :) – Aditya

관련 문제