티스토리 뷰

DevOps/System&Tools

Jenkinsfile validator

Jacob_baek 2019. 11. 20. 13:01

Jenkinsfile을 수정해보았으나 간혹 syntax error가 발생될수 있다.
이때 마다 수정하고 code push후 이를 테스트 해보기란 여간 번거로운 일이 아닐수 없다.
하여 간단하게 plugin 혹은 built-in validator를 사용하여 검증하는 방법을 알아보도록 하자.

validator vscode plugin

아래 plugin 을 설치하고 사용할수 있다.

plugin이 설치되면 ctrl + shift + p 입력하여 validate pipeline 을 실행해볼수 있다.

validate Jenkinsfile을 선택하게 되면 URL 입력창이 뜨게 되는데 Jenkins가 동작중인 URL과 함께 pipeline-model-converter/validate 을 입력하면 된다.
(URL에서 예상되듯이 Jenkins에 해당 파일을 검증하도록 요청하는 방식이라 보면 된다.)

실제 아래와 같은 주소가 된다.

http://Jenkins-Domain:8080/pipeline-model-converter/validate

주의
안타깝게도 해당 validator는 pipeline 즉 declative pipeline만 사용이 가능하다.
또한 인증과정이 필요하여 접근권한 오류가 발생될수 있다. 하여 아래 curl 방식을 이용하는것을 추천한다.

Builtin validator

다음과 같은 built-in 되어 있는 validator를 이용할수 있다.
알아두어야 할 것은 POST 방식으로만 접근이 되기에 curl 과 같은 도구를 사용해야 한다.
또한 Jenkinsfile 파일이 존재하는 디렉토리에서 바로 실행하면 된다.

jacob@jacob-laptop:~/$ curl --user jacobbaek:****** -X POST -F "jenkinsfile=<Jenkinsfile" https://jenkins.example.com/pipeline-model-converter/validate --insecure
Errors encountered validating Jenkinsfile:
WorkflowScript: 136: unexpected char: '\' @ line 136, column 32.
                     sh "sed -i '/\[mons\]/{n;s/.*/\#test-message/}' inventory/${params.SITE}/hosts.ini"
                                  ^

정상적인 경우라면 아래와 같이 successfully validated 메세지를 확인할수 있다.

jacob@jacob-laptop:~/$ curl --user jacobbaek:****** -X POST -F "jenkinsfile=<Jenkinsfile" https://jenkins.example.com/pipeline-model-converter/validate --insecure
Jenkinsfile successfully validated.

'DevOps > System&Tools' 카테고리의 다른 글

Jenkinsfile example using ssh and scp  (0) 2019.11.25
variables in Jenkinsfile  (0) 2019.11.22
Jenkinsfile validator  (0) 2019.11.20
nexus  (0) 2019.11.12
k3s integrated with GitLab  (0) 2019.10.03
dynamic inventory  (0) 2018.07.24
댓글
댓글쓰기 폼