Skip to content

Jenkins 자동으로 workspace clear 하기

학성 edited this page Aug 18, 2020 · 3 revisions

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가 잘 정리된다. 끗!

Clone this wiki locally