Jenkins 자동으로 workspace clear 하기
jenkins가 자꾸 죽어버리는 문제가 발생하였다. 원인은 쌓여있는 build결과물로 판단되어 CI/CD과정에서 build결과물을 clear해주는 과정을 추가하기로 했다.
젠킨스 아이템의 구성에 들어가 보면 "Delete workspace before..."이라는 곳이 있다.
저것말고도 빌드후에 삭제하는 기능도 있는데 각 항목에 체크를 하면 빌드 전 or 후에 workspace를 비워준다.
각 아이템의 해당하는 workspace만 비워준다는 것이다.
무슨말인지 자세히 설명해보겠다.
아래처럼 3개의 아이템이 있다.
admin과 web은 freestyle project로 만든 아이템이고, woowacourse-teams는 github organization으로 만든 item이다.
그 결과 다음과 같은 workspace구조가 나온다.
- admin과 web의 workspace ⇒ /var/lib/jenkins/workspace/admin 혹은 web
- woowacourse-team의 workspace ⇒ /var/lib/jenkins/workspace
다시말하면 woowacourse-team의 build결과물은 /var/lib/jenkins/workspace 에 저장이 되는데 admin이나 web에 있는 "Delete workspace before..."기능으로는 /var/lib/jenkins/workspace 를 비울수 없다는 것이다.
그리고 github organization으로 만든 woowacourse-teams에는 위에서 언급되었던 "Delete workspace before..."이런게 존재하지 않는다.
따라서 woowacourse-team의 build결과물은 자동으로 지우기가 지금은 애매한 상황인 것이다.(아마 pipeline으로 하면 가능할듯도함)
그래서 찾은 방법은 web이나 admin을 빌드하고 배포하는 CD작업을 할 때, 빌드 스크립트에 /var/lib/jenkins/workspace를 clear해주는 명령어를 살짝 끼워넣는 방법을 택했다.
이렇게하고 build를 해본결과... 에러가 발생하였다.
문제는 권한!
/etc/sudoers에 접근하여 아래코드를 추가해주고 다시 실행하면 workspace가 잘 정리된다. 끗!
- Jenkins CI/CD 적용하기
- Nginx 적용하기
- docker로 jenkins설치 시 플러그인 설치오류 해결방법
- 데이터베이스 마이그레이션
- Logback, Error 로그 Slack 알림 받기
- Jacoco 적용하기
- SonarQube 적용하기