프로그래밍/Jenkins

[Jenkins] Git 변경 적용되지 않는 오류 해결

Beginner:) 2023. 5. 29.
320x100

Jenkins를 사용하다 git checkout -b 인데, git branch -b로 오타가 나서 Git을 다시 push한 후 Jenkins를 돌렸으나

여전히 오류가 나는 상황.

+ git branch -b feature/feature
error: unknown switch `b'

 

Git을 확인해도, Jenkins의 git checkout을 확인해도 아무런 문제가 없었는데, Jenkins workspace를 확인해보니 수정전으로 남겨져있었다.

 

Jenkins에서 Cache와 같은 개념이 있다고 한다. 그래서 수정이안된건데, Workspace를 삭제하는 방법이 있다.

(rm -rf 명령어로 수행하기엔, 실수로 인해 애꿎은 파일만 날릴 수도있다.)

 

빌드환경에서 "Delete workspace before build start"를 체크하면 되지만, pipeline에는 없는것으로 보인다.

 

나는 pipeline SCM을 사용중이라서 아래와 같은 방법으로 해결.

 

pipeline {
    agent any
 	/*   
    options {
        skipDefaultCheckout()
    }
	*/
    stages {
        .
        .
        .
    }

    post {
            always {
                cleanWs(
                    deleteDirs: true,
                    cleanWhenFailure : true
                    /*
                    patterns: [
                        [pattern: '.venv', type: 'EXCLUDE'],
                        [pattern: '.venv/**', type: 'EXCLUDE']
                    ]
                    */
                )
            }
        }
}

cleanWs를 사용하는 방법인데, Jenkins Plugin에서 Cleanup plugin을 설치해야한다.

 

stage가 모두 실행된 후 cleanWs가 실행되면서 workspace를 삭제한다. 

만약 stage가 시작되기 전 workspace를 삭제하길 원하면 stage 전에 위치해주면 된다.

pattern은 .gitignore, .git 파일(폴더)과 같이 삭제하면 안되는 것들, node-modulse와 같이 cache가 필요한 경우에 사용해주면 된다.

 

참고 자료

https://plugins.jenkins.io/ws-cleanup/

https://www.jenkins.io/doc/book/pipeline/syntax/#post

 

반응형

댓글