728x90

jenkins 21

Jenkins declarative parallel build pipeline

아래 블로그의 글이 상황별 parallel build 에 대해 잘 정리되어있음. https://velog.io/@cyeongy/jenkins-parallel-문법 jenkins parallel 문법1. 간단한 병렬 빌드 2. 의존성이 있는 병렬 작업 3. 순서는 존재하나 의존성은 없는 병렬 작업, 빌드velog.io 다음은 블로그 내용을 가져왔습니다. 1. 간단한 병렬 빌드pipeline { agent any stages { stage('First Stage'){ steps{ echo "First Stage" } } stage('Second Stage') { paralle..

Jenkins 2024.04.30

[Jenkins/RobotFW] Error: Opening Robot Framework log failed

https://stackoverflow.com/questions/36607394/error-opening-robot-framework-log-failed [Issue] Opening Robot Framework log failed• Verify that you have JavaScript enabled in your browser.• Make sure you are using a modern enough browser. Firefox 3.5, IE 8, or equivalent is required, newer browsers are recommended.• Check are there messages in your browser's JavaScript error log. Please report the..

현재시간, 1시간 전, 1일 전 datetime 을 원하는 포맷으로 구하기

현재 시간과 현재 시간 기준으로 전, 후 시간을 원하는 포맷으로 구하는 방법 import java.text.SimpleDateFormat import java.util.Calendar def get_date() { Date date = new Date() // 현재 시간 SimpleDateFormat dtformat = new SimpleDateFormat("yyMMdd_HHmmss") // 포맷 변경 Calendar calendar = Calendar.getInstance() calendar.setTime(date) today = dtformat.format(calendar.getTime())// 현재 calendar.add(Calendar.MINUTE, 3) threeminafter = dtforma..

Jenkins 2024.03.25

Jenkins Pipeline script from SCM

Pipeline script from SCM 설정 가이드 SCM: git Repoitory URL: https://...git Credentials 추가 - Kind: Username with password - Username: github 계정 이름 - Password: github token (발급방법: 2022.10.10 - [Jenkins] - Jenkins - GitHub 연동하기 ) Branch: */{branch-name} Script Path: {groovy script path} Credential은 Jenkins 관리> Credentials> System> Global credentials (unrestricted)에서 확인 가능함 http://{jenkins_url}/manage/c..

Jenkins 2024.02.28

Jenkins에서 json 파싱하는 법

1. jq 사용 단, Jenkins node에 jq 패키지가 설치되어 있어야한다. def parsedRes = sh(script: "curl -s ... | jq -r ...", returnStdout: true) 2. Jenkins pipeline 에서 JsonSlurper를 사용 1. returnStdout을 통해 sh(curl) response를 가져온다. def myResponse = sh(script: """curl -s -X GET 'http://(....)' -H 'accept: */*' """, returnStdout: true).trim() 2. groovy.json.JsonSlurper 을 통해 response를 파싱한다. def jsonRes = new JsonSlurper().par..

Jenkins 2023.12.27

[Script Console] Jenkins 실행 중이거나 대기 중인 빌드 일괄 멈추기

Jenkins 에서 실행 중인 빌드나 큐에 대기 중인 빌드를 Script Console에서 일괄적으로 중단하는 방법Script Console : http://{JENKINS_URL}/manage/scriptimport java.util.ArrayListimport hudson.model.*;import jenkins.model.Jenkins // 1. Remove everything which is currently queued def q = Jenkins.instance.queue for (queued in Jenkins.instance.queue.items) { q.cancel(queued.task) } // 2. stop all the currently running jobs // ..

Jenkins 2023.09.23

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
728x90