0

Jenkins에서 작업의 전역 매개 변수를 읽을뿐만 아니라 전역 매개 변수를 쓰는 방법이 있습니까? 독서를 위해 나는이 플러그인을 사용했습니다 : Global Variable String Parameter 그러나 아직 전역 매개 변수에 대한 쓰기 액세스를 지원하는 것이 없습니다. 경주 조건을 만들 수 있기 때문에 이것이 비판적으로 보일 수 있음을 알았습니다.Jenkins : 전역 매개 변수에 쓰기

는 실제로 수행 할 작업 :

나는 두 젠킨스 채용이 - 각 (예를 들어, "릴리스"및 "베타") Google Play 스토어에 있지만 서로 다른 버전의 트랙으로 내 안드로이드 APK를 게시.

빌드 번호가 gradle을 통해 자동으로 증가되기를 원합니다. 그러나 gradles는 VCS 외부의 모든 빌드에서 마지막 빌드의 빌드 번호에 액세스해야합니다 (다른 커밋이 필요하지 않도록). 빌드 번호가 연대순으로 보장되도록하고 싶습니다. 따라서 모든 Jenkins 작업 (예 : "version.properties"파일)에 별도의 빌드 번호를 유지하는 것은 해결책이 아닙니다.

플랜 B는 날짜로 인코딩 된 빌드 번호로 전환 할 수 있습니다. 그러나 점진적 접근 방식이 있다면 궁금합니다.

답변

1

작업 작업 영역이 아닌 jenkins 작업 영역에있는 "version.properties"파일을 사용할 수 있습니다. 파일

enter image description here

-2-을 빌드 APK

-3- 증가 쉘 스크립트

버전 = $의 버전 ((행

1- 분사 환경 변수 $ version + 1))

echo version = $ version> $ {JENKINS_HOME}/workspace/mod ule.properties

+0

파일을 제 젠킨스 서버의 파일 시스템에 저장합니까? 또는 jenkins 내의 글로벌 "version.properties"를 구성하여 다중 노드의 경우 확장 할 수 있습니까? –

+1

예 파일 시스템에 파일을 넣어야하지만, 불행하게도이 솔루션은 동일한 작업 공간을 공유하지 않기 때문에 노드를 사용하지 않는 경우에만 작동합니다. 명확히 해 주셔서 감사합니다. –

+0

. Jenkins가 글로벌 쓰기 가능 변수를 지원하지 않는 이유는 동기화 문제 및 경쟁 조건 일 수 있습니다. –

관련 문제