Git 저장소 내 디렉토리를 Jenkins Job 매개 변수로 선택하고 싶습니다.
2152 단어 Jenkins
이게 뭐야
Git 리포지토리의 디렉토리를 Jenkins Job 매개 변수로 선택하려는 장면을 만났을 때의 메모입니다.
Jenkins1의 설정에 대해 설명합니다.
전제 조건
플러그인 확장 가능한 선택 Extensible Choice Parameter
가 설치되어 있어야 합니다.
Extensible Choice Parameter Plugin의 File Choice Parameter로 실현할 수 있을 것 같지만. .
Extensible Choice Parameter Plugin 에서 선택할 수 있는 File Choice Parameter 는, 시스템상의 파일이나 디렉토리를 선택사항으로서 설정할 수 있습니다.
그러나 이번 환경에서는 사용할 수 없었습니다.
이유는, 이용하고 있는 Jenkins 환경이 Job 관리 서버와 Job 프로덕션 서버로 나누어져 있어 Job를 실행하면 적절히 비어 있는 Job 프로덕션 서버에 할당되기 (위해)때문에, Job 관리 서버에 clone 한 리포지토리는 보관 유지할 수 없었습니다 .
이번에는 Groovy 스크립트로 생성하는 선택 System Groovy Script Choice Parameter를 이용합니다.
줄거리
두 개의 JenkinsJob을 만듭니다.
- Job1: Git 리포지토리를 취득해 디렉토리의 내용을 파일에 토출하는 작업.
- Job2: 궁극적으로 움직이고 싶은 작업. Job1이 내뿜는 파일을 읽고 파라미터에 풀다운 메뉴를 표시합니다.
Job1 설정
소스 코드 관리에서 Git을 선택. 검색할 리포지토리를 설정합니다.
빌드> 빌드 프로 시저 추가에서 workspace에서 ls 출력을 리디렉션하는 쉘 추가
# 選択肢として表示したいディレクトリのパスを指定します
TARGET_PATH=${WORKSPACE}/target_directory
# ディレクトリ名にCHOICEを含むものを出力します。
echo 'ls -a ${TARGET_PATH} | grep ".*CHOICH.*"'
ls -a ${TARGET_PATH} | grep ".*CHOICH.*" > target.log
echo "cat target.log"
cat target.log
빌드 후 처리 > 빌드 후 처리 추가 에서 Copy files back to the job's workspace on the master node 를 선택하고 target.log 를 지정합니다.
빌드 트리거에 정기적으로 실행 또는 SCM 폴링을 설정.
Job2 설정
확장 가능한 선택> 선택 사항을 얻는 방법에서 Groovy 스크립트에서 생성 할 선택 사항을 지정합니다.
def files = new File("/[PATH_TO_WORKSPACE]/target.log").readLines()
return files
이상으로 Job2의 파라미터에 옵션으로서 설정할 수 있을 것.
Reference
이 문제에 관하여(Git 저장소 내 디렉토리를 Jenkins Job 매개 변수로 선택하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/novonovo/items/e3f4e1f688676f33a54b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)