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'을 추가해도 문제가 없었는데, 이번에는 브랜치 때문에 에러가 났으니 말이다.
이렇게 또 하나 배워간다.