목록젠킨스 (8)
오늘도 한 뼘 더

# 배경 젠킨스 버전을 업데이트하고 나서 "free style project"로 만든 젠킨스 잡의 구성을 변경하고 저장하려고 하면 다음과 같은 에러가 발생하였다. JSONObject["scm"] is not a JSONObject # 원인 및 해결 방법 젠킨스 버전이 변경되고 나서 버전이 맞지 않아서 발생한 문제였다. 다음의 젠킨스 이슈 페이지를 보고 문제를 파악하게 되었다. https://issues.jenkins.io/browse/JENKINS-72202 Loading... Hello, After updating Jenkins from 2.425 to 2.426 I am not able to Save/Apply changes to jobs that use git as SCM. The error is ..

# 배경 git parameter 중 Tag 파라미터를 불러와서 쓰는 프로젝트들이 있었는데 Tag가 불러와지지 않는다. # 문제 Jenkins의 버전이 변경되었는데 이전에 되던 git tag 조회가 되지 않는다. # 원인 및 해결 방법 ## 원인 새로운 Jenkins의 버전과 기존에 사용하던 git parameter / git 플러그인의 버전이 맞지 않아서 생긴 문제였다. ## 해결 방법 Jenkins 플러그인 > git paramter | git 플러그인 버전 업데이트

# 배경 도커로 올린 jenkins의 이미지를 변경하는 과정에서 다음과 같은 에러가 발생했다. Unable to read /var/jenkins_home/config.xml # 문제 다음과 같은 에러 메시지가 뜨면서 Jenkins가 시작이 되지 않았다. config.xml파일을 백업으로 이름을 변경하고 올리면 Jenkins가 재시작이 되었는데 문제는 설정이 다 초기화되는 상태였다. ---- Debugging information ---- cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException cause-message : hudson.security.GlobalMatrixAuthorizationStrategy class :..

Jenkins job에 대해서 pipeline으로 작성을 할 때 빌드 및 배포에 대한 결과에 따라서 다른 작업을 두 가지 방법으로 진행할 수 있다. # try / catch 사용하기 pipeline { agent any stages { stage('Checkout') { steps { script { try { build job: 'jenkins_job', parameters: [ string(name: 'parameter_name', value: "${parameter_value}")] } catch (e) { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh "exit 0" echo "error" } echo 'TEST Fail! But..

# 배경 Jenkins 에서 dev와 staging 두개의 배포 구성이 같으나 staging은 배포가 되고 dev는 배포가 되지 않는 문제를 발견했다. # 문제 발생 이후 테스트 시도 방법 staging배포용 jenkins job에서 dev를 배포 배포 성공 dev에서 staging배포 배포 실패 새로운 jenkins job을 staging을 복사해서 생성 배포 성공 기존의 dev jenkins job을 삭제하고 새로운 jenkins job의 이름을 변경하여 배포 배포 실패 # 문제 원인 테스트 시도 방법을 통해서 workspace 문제라는 것을 추측할 수 있었다. 배포에 실패한 workspace과 성공한 workspace의 package-lock.json에 에러가 발생한 eslint를 검색하니 서로 내..

# 배경 Jenkins에서 배포를 할 때마다 API 호출을 해야 했다. 이를 Jenkins Job 설정의 Post Build Task로 진행을 하도록 한다. # Post Build Task - Execute Scripts Execute Scripts를 사용해서 빌드가 끝나고 나면 API 호출 명령어를 작성한다. curl 명령어를 통해서 사용하고자 하는 API를 작성한다. curl -X POST https://localhost:5000/my

문제 배경 회사에서 Jenkins를 사용할 때 구성, 설정 등에 대한 변경이 발생했을 때 이력이 남지 않았고 구성(Configuration)이 변경되었을 때 왜 변경이 되었는지 무엇이 변경이 되었는지 파악하는데 어려움이 있었다. 해결방안 시니어 개발자가 Jenkins에 이력을 남길 수 있는 플러그인이 존재한다고 하여 플러그인을 통해 변경된 설정 이력을 남기고자 한다. 플러그인 설치하기 1. 플러그인 관리에 들어가서 "history"라고 작성하면 바로 설정 이력이 나온다. 이 플러그인을 설치해준다. 2. 다운로드 후 Jenkins를 재시작하게 되면 Menu바에 "Job Config History" 버튼이 생성된 걸 확인할 수 있다. History 확인 하기 1. Jenkins Job 하나를 들어가서 구성 ..

localhost:8080 또는 지정한 도메인을 통해서 jenkins로 접근 1. Jenkins 보안 풀기 처음 Jenkins에 접속하며 jenkins 셋업을 위해 초기 설정되어있는 비밀번호로 보안을 풀어 줘야 한다. 세팅된 initialpassword로 보안을 풀어주는데는 두 가지 방법이 있다. 1) docker log로 확인 $ sudo docker logs -f jenkins 2) 경로를 통해 확인 $ sudo cat /var/jenkins_home/secrets/initialAdminPassword 2. 플러그인 설정 권장 플러그인 설정을 설치하는 방법과 직접 설치하고자 하는 플러그인을 선택하는 방법이 있다. 플러그인을 설치할 때 간혹 Fail이 뜨는 경우가 있는데 플러그인의 경우 이후에 별도로 ..