티스토리 뷰
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 |
nexus (0) | 2019.11.12 |
k3s integrated with GitLab (0) | 2019.10.03 |
dynamic inventory (0) | 2018.07.24 |
- Total
- 141,310
- Today
- 7
- Yesterday
- 193
- kata container
- minio
- Jenkinsfile
- mattermost
- kubernetes
- K3S
- vmware openstack
- ConEmu
- metallb
- Helm Chart
- elasticsearch
- OpenStack
- Terraform
- jenkins
- aquasecurity
- hashicorp boundary
- kubernetes install
- minikube
- wsl2
- ansible
- openstacksdk
- nginx-ingress
- socket
- DevSecOps
- galera
- boundary ssh
- openstack backup
- crashloopbackoff
- ceph
- macvlan