728x90

Jenkins 25

Jenkins 빌드 로그를 변수에 저장하기

빌드 전체 로그 저장: currentBuild.rawBuild.log 마지막 100 lines를 list 에 저장: currentBuild.rawBuild.getLog(100) def testBuild = build ( job: "TEST_JOB", propagate: false, parameters: [ string(name: "TARGET_NODE", value: "${TARGET_NODE}") ] ) JENKINS_BUILD_URL = testBuild.getAbsoluteUrl() JENKINS_STATUS = testBuild.getCurrentResult() JENKINS_LOG = testBuild.rawBuild.log // 전체 로그 저장 JENKINS_LOG100 = testBuild...

Jenkins 2023.08.08

Jenkins idle node 조회

jenkins에서 기본으로 제공하는 api (jenkins_ip/computer/api/json)에서 assignedLabels/idle을 통해 idle node 정보를 얻을 수 있지만, groovy script에서도 idle node를 찾을 수 있다. Computer.countBusy() == 0 인경우 node가 idle 상태이다. /** * Returns the number of {@link Executor}s that are doing some work right now. */ public final int countBusy() { return countExecutors()-countIdle(); } 위 정보를 응용해서 특정 label의 노드의 상태를 다음과 같이 찾았다. @NonCPS // 특정..

Jenkins 2023.06.20

Jenkins Gerrit 서버 등록 에러 (id_rsa is not a valid key file)

[문제] Jenkins Gerrit Trigger plugin을 사용하기 위해 Gerrit 서버를 등록하는데 "/var/lib/jenkins/.ssh/id_rsa" is not a valid key file. 에러 발생 [원인] id_rsa 키가 openssh private key로 등록되었기때문 $ cat id_rsa -----BEGIN OPENSSH PRIVATE KEY----- .... -----END OPENSSH PRIVATE KEY----- [해결방법] OPENSSH RSA키가 아닌 RSA 키로 생성하기 $ ssh-keygen -m PEM -----BEGIN RSA PRIVATE KEY----- .... -----END RSA PRIVATE KEY----- https://stackoverflo..

Jenkins 2023.06.13

Upgrade Jenkins in docker container

docker container로 운영중인 Jenkins 버전을 업데이트 하는 방법 1. jenkins container에 root로 진입 thxxyj@test-server:~# docker exec -u 0 -it ${jenkins_container} /bin/bash 2. 업데이트할 버전의 jenkins.war 파일 다운로드 http://updates.jenkins-ci.org/download/war/ root@b16853c06825:/# wget http://updates.jenkins-ci.org/download/war/2.387.3/jenkins.war 3. 다운로드한 jenkins.war 파일 이동 root@b16853c06825:/# mv ./jenkins.war /usr/share/jenki..

Jenkins 2023.05.13

[Jenkins] regex를 통해 파일에서 원하는 문자열 찾기

파일에서 특정 문자열을 찾아 job description에 출력하고자 한다. > 파일 읽기 readFile "파일 경로/파일이름" > regex를 통해 파일에서 원하는 문자열 찾기 myfile = readFile "파일경로/파일이름" myfile =~ /정규표현식/ > job description에 추가하기 currentBuild.description = "추가하고 싶은 내용" LOGFILE = readFile "./test_result.txt" ## regex pattern is '.+:\s(FAIL)' if (LOGFILE =~ /.+:\s(FAIL)/){ TEST_RESULT = 'FAIL' } else { TEST_RESULT = 'PASS' } currentBuild.description = "..

Jenkins 2022.12.15

jenkins-cli로 job 복사/생성하기

Jenkins 관리 > Jenkins CLI 에서 jenkins-cli.jar 파일을 다운로드한다. Available Commands는 위 경로에서 확인 가능하다. java -jar jenkins-cli.jar -s ${Jenkins IP:Port} -auth ${ID}:${Password} ${Command} * 로그인이 필요없는 jenkins 서버의 경우 -auth ${ID}:${Password} 는 생략 가능 > job의 정보 xml로 저장하기 java -jar jenkins-cli.jar -s ${Jenkins IP:Port} -auth ${ID}:${Password} get-job ${job이름} > ${파일이름.xml} ex) java -jar jenkins-cli.jar -s http://1..

Jenkins 2022.12.14
728x90