본문 바로가기
LEARN/ERROR

[Jenkins] 젠킨스 빌드 에러 org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309)

by 아이엠제니 2024. 2. 13.

os: ubuntu 22.04.3 LTS


 

 

 

거의 한 달 전에 Jenkins 작업을 해보고, 근래에 새로운 프로젝트에 들어가게 되면서!

Jenkins를 다시 설치했다.

그리고 세팅을 한 후에, 파이프라인까지 작성한 다음 '실행' 버튼을 클릭했는데 빌드에 실패했다.

 

 

Started by user TEST
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 15: unexpected token: token_test @ line 15, column 32.
                   credentialsId: 'token_test', url: 'https://github.com/test/test.git'
                                  ^

1 error

	at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309)
	at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:149)
	at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:119)
	at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:131)
	at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:349)
	at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:225)
	at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:191)
	at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:233)
	at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:189)
	at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:966)
	at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:626)
	at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:602)
	at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:579)
	at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:323)
	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:293)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox$Scope.parse(GroovySandbox.java:163)
	at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:190)
	at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:175)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:636)
	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:582)
	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:335)
	at hudson.model.ResourceController.execute(ResourceController.java:101)
	at hudson.model.Executor.run(Executor.java:442)
Finished: FAILURE

이전과 달라진 게 없는데, 무엇이 문제였을까?

한참을 검색을 했지만, 해피엔딩이 아니었다...

정말 계속 검색을 하고, 또 하고...

설정이나 파이프라인을 살펴보고 또 보고...

 

그러다가 발견하게 있으니! (두둥)

 

 

브랜치 차이였다...

이것 때문에 계속 삽질을 했다.

 

 

💡 수정 전

        stage('git clone') {
            steps {
                // Get some code from a GitHub repository
                credentialsId: 'test', url: 'https://github.com/test/test.git'
                
            }

기존에 `master`로 되어있을 때는 'git clone' stage 안 steps에 'credentialsId'랑 'url'만 넣었다.

 

💡 수정 후

        stage('git clone') {
            steps {
                // Get some code from a GitHub repository
                git branch: 'main', credentialsId: 'test', url: 'https://github.com/test/test.git'                
            }

근데 현재는 `main'으로 되어있기 때문에 [git branch]를 추가해야 했던 것이다...

 

 

찾아보니, 2023년 10월 이후에는 깃허브에서 기본 브랜치를 master가 아닌 main으로 변경했다고 한다.

 

하지만 이전 프로젝트는 왜인지.. 브랜치가 master로 되어 있었다.

아무래도 내가 인텔리제이 터미널에서 푸시할 때 브랜치를 'master'로 적었던 게 아닌가 싶다.

현재 프로젝트는 리포지토리를 내가 생성한 게 아니라, 이미 생성되어 있던 리포지토리를 git clone 해서 사용을 하고 있다.

그러다 보니 깃허브에서 'main'으로 변경한 것처럼, 기본 브랜치도 'main'으로 되어있었던 것이다.

 

그렇다면 Jenkins에서는 여전히 깃허브 브랜치의 디폴트를 'master'로 사용하고 있는 것 같다.

이전에는 'git clone'을 추가해도 문제가 없었는데, 이번에는 브랜치 때문에 에러가 났으니 말이다.

이렇게 또 하나 배워간다.

 

 

 

 

300x250