젠킨스 파이프라인은 Groovy DSL을 사용해 작성합니다. 파일명은 보통 Jenkinsfile.* 처럼 씁니다 (ex. Jenkinsfile.dev)

 

Pipeline Syntax

Scripted Pipeline, like Declarative Pipeline, is built on top of the underlying Pipeline sub-system. Unlike Declarative, Scripted Pipeline is effectively a general-purpose DSL built with Groovy. Most functionality provided by the Groovy language is made av

www.jenkins.io

자세한 문법은 젠킨스 문서에 있습니다.

Intellij에서 기본적으로는 groovy sdk를 설치했을 때, 딱 groovy 문법으로만 적용해줍니다.

 

이런식으로 보이는데.. 잘 맞게 쓴건지 아닌지는 pipeline syntax 페이지를 봐야 합니다 (아니면 파이프라인 돌려보거나)

매번 문서를 띄워놓고 파이프라인을 고치는건 고역일 듯 한데요.. gradle dsl 처럼 자동으로 착착 써주는게 없나 좀 찾아봤습니다

깔끔한 답은.. 없는 듯 합니다 -_-

 

GDSL 이라는 groovy dsl directive 파일이 필요한데, 이 파일은 직접 만들거나, 누가 만든걸 받거나, 젠킨스에서 자동 생성할 수 있습니다.

 

https://github.com/jaydubb12/jenkins-dsl-pipelines/blob/main/src/main/jenkins.gdsl

어떤 분이 만들어 정리한 gdsl 파일이구요

 

(젠킨스 주소)/pipeline-syntax

gdsl 파일을 젠킨스에서 생성할 수 있는데, 위 경로로 접속해서 "IntelliJ IDEA GDSL"을 눌러 나온 파일을 저장하면 됩니다

 

아무튼 gdsl 파일을 만들었다면 IntelliJ가 인식할 수 있도록 해줘야 합니다.

main 밑에 groovy 라는 폴더를 만든 뒤, 우클릭 후 Source Root 폴더로 마크해줍니다. 그 안에 gdsl 파일을 넣어주고, Jenkinsfile은 아무데나 빼줍니다.

DSL descriptor file has been changed and isn't currently executed
> Activate back

그리고 gdsl 파일을 열어 Activate를 시켜줍니다.

 

자 그러면 이렇게 어느정도 타입, 설명 등이 보이는 상태가 되었습니다

 

잘 된 것처럼 보이지만 여러가지 문제가 있습니다.

  • jenkins를 통해 자동 생성한 경우, 적용이 안되는 것 같음
  • 다른 유저가 만든 gdsl 파일의 경우, 어느정도는 적용이 되지만 몇개는 안됨
    (ex. agent any, none이라든가, pipeline {} 이라든가..)
  • Shared Library를 추가한 경우에도 directive를 따로 추가해줘야 한다

 

직접 모든 라이브러리까지 method, property 타입, 파라미터 등을 채워서 directive를 만들면 편하기야 하겠지만, 시간 대비 효율이 나오는 일인지도 잘 모르겠고, 어차피 파이프라인은 .. 돌려보고 실패하면 그때 수정해도 뭐.. 상관 없지 않나.. 그렇네요

자동으로 해주는 플러그인이나 뭔가가 있으면 좋겠는데.. 아무튼 지금은 이게 최선인 듯 합니다

 

Reference

 

반응형