본문 바로가기
728x90

Study/Jenkins6

Jenkins JSONObject["scm"] is not a JSONObject 에러 해결하기 jenkins 업데이트가 된 이후로 slack notification plugin을 수정하려고 하면 위와 같은 에러가 발생했습니다. JSONObject["scm"] is not a JSONObject 사실 이런 문제가 생길까봐 툴 업데이트는 최대한 안하는 편인데 어째서인지 Jenkins가 자동 업데이트 되어있었습니다 ㅜㅜ 어쨌든 문제는 발생했으니 해결을 해야 했습니다. Slack Notification은 소중하기 때문이죠. 찾아보니 2023년 10월에 동일한 문제를 리포트한 분이 있었습니다. 역시 ChatGPT 보다 근본인 구글링의 승리인 순간 Loading... Hello, After updating Jenkins from 2.425 to 2.426 I am not able to Save/Apply c.. 2024. 3. 20.
Jenkins Pipeline Parallel 실행 하기 (젠킨스 파이프라인 병렬 실행) 테스트 자동화 병렬 이야기를 지난 포스팅에 했었어서 실제로 어떻게 사용하는지 이야기를 해보려고 합니다. 물론 초기 스크립트는 ChatGPT가 자세히 알려주어 참고했습니다~ 대략적인 구조는 이렇습니다. pipeline ㄴ stages ㄴ stage ㄴ parallel ㄴ stage ㄴ steps ㄴ stage ㄴ steps jenkins parameter를 쓸 때에는 ' ' 나 " "로 묶는 것이 아니라 """ """로 해줘야 인식이 되기에 jenkins parameter를 넣는 부분은 """ """로 되어있습니다. dir( ) { } 부분은 ( ) 위치로 가서 { } 을 실행하라는 내용입니다. post에 slacksend부분은 slack notification 플러그인이 설치되어있어야 사용할 수 있습니다.. 2023. 9. 8.
jq를 사용해서 JSON 값 변경하기 Jenkins를 사용하다 보면 해당 job을 돌리기 전에 JSON값을 수정해야 하는 상황이 생길 수 있습니다. 이럴때 jq 를 사용하여 간단하게 할 수 있는데요 기본 내장 기능이 아니기 때문에 설치가 필요합니다.brew install jq 설치 완료 후 변경할 JSON파일 이름과 변경할 대상 key, 그리고 변경할 value가 정해지면 아래의 양식으로 작성합니다.jq ‘.values |= map(if .key == “{대상 key 명}” then .value = {변경할 값} . end)’ {변경할 json파일} > temp.json && mv temp.json {변경할 json파일} 변경할 JSON파일 이름이 user_info.json 변경할 대상 key가 user_token 변경할 value가 bla.. 2023. 6. 23.
jenkins pipeline 결과 fail일 때 멈추지 않고 실행되도록 처리하기 & fail 이면 멈추기 이전 회사에서 전 구간 자동화를 설정했었던 jenkins로 지금 회사에서도 전 구간 자동화를 설정했습니다. 앱 다운 -> 기기 설치 된 앱 삭제 -> 다운 받은 앱 설치 -> 자동화 코드 실행 그리고 각 단계마다 예외처리를 다르게 설정해줘야 하는 구간이 있습니다. - 앱 다운 - 다운 받은 앱 설치 - 자동화 코드 실행 은 해당 파이프라인의 전체 결과와 밀접한 관계를 가지고 있었지만, 기기 설치 된 앱 삭제 부분은 조금 달랐습니다. 해당 파이프라인이 진행될 때 기기에 설치할 앱이 있을수도 있고 없을 수도 있었기 때문이죠. 그래서 해당 부분만 실패해도 파이프라인 진행은 되지만, 결과는 실패로 찍히도록 처리를 했습니다. try catch 부분에 catch에 catchError 구문을 추가해주시면 되며 해당 .. 2022. 3. 2.
Jenkins 원격 빌드 하기 - cURL 사용해보기 하나의 Jenkins 내에서 다른 Job을 이어서 진행하게 하는 방법은 빌드 후 조치에서 다른 빌드 실행으로 간단하게 할 수 있지만 다른 Jenkins의 Job을 실행할 때는 방법이 조금 다릅니다. 이 때는 원격빌드 (리모트 빌드) 를 해야 하는데요 이번에는 이 방법을 알아보겠습니다. A Jenkins에서 B Jenkins의 'RUNNING_JOB' 이라는 이름의 Job을 실행한다고 가정하겠습니다. 일단 첫번째로 B Jenkin의 RUNNING_JOB 화면 구성으로 이동하여 빌드 유발 부분의 '빌드를 원격으로 유발' 을 체크합시다. 그리고 Authentication Token을 임의의 문자로 입력해주세요. 저는 AppDownload로 하겠습니다. 그리고 계속해서 B Jenkins의 홈 화면으로 이동한 뒤.. 2021. 5. 20.
Jenkins Pipeline 스크립트 작성해보기 - Job 일괄 실행하기 저는 CI/CD 도구로 Jenkins를 주로 사용하는 편입니다. 강점이라면 많은 플러그인 들이고 또 하나는 제가 자주 써서 익숙하게 사용할 수 있다는 점이지요. (사실 현역 프로그램중에 고르라면 내가 편한게 최고 아니겠습니까?) Jenkins에는 수많은 Job들이 등록되어 있고 실행이 되고 있습니다. QA Engineer의 경우 자동화 테스트를 Job으로 만들어서 관리하게 될텐데 개발 환경이나 실제 서비스되는 라이브 환경을 검증 할 때 하나의 Job만 실행하여 검증을 할 수 없는 경우는 여러개의 Job을 실행하여 검증을 진행하게 됩니다. 이럴때 이러한 Job들을 묶어서 하나의 Job으로 실행되도록 할 수 있습니다. 바로 Jenkins Pipeline 으로 가능합니다. 새로운 Item을 선택하면 Job을 .. 2021. 5. 20.