커밋하기 전에 Jenkinsfile을 로컬에서 확인하는 방법

배경



지속적 통합 및 배포는 재미있는 주제입니다. 최근 실제 직장에서 몇 가지 프로젝트를 진행하면서 많은 것을 배웠습니다.
특히 Jenkins와 함께 작업하는 경우 작업이 약간 위협적일 수 있습니다. 오해하지 마세요! Jenkins는 놀라운 도구입니다. 내가 시도한 다른 솔루션(Github Actions , Gitlab CI/CD Pipelines , Buddy.works 등)에 비해 학습 곡선이 약간 더 가파르다는 것을 알았습니다.

Jenkins에 익숙하지 않은 경우 엔터프라이즈 환경에서 매우 인기 있는 오픈 소스 CI/CD 자동화 제품군입니다.
명령을 실행하기 위해 Jenkins는 Jenkinsfile이라는 특수 파일을 사용합니다. 두 가지 맛을 사용할 수 있습니다.

  • 선언적 구문: 파이프라인 명령을 작성하는 비교적 새로운 방법입니다("파이프라인 플러그인"버전 2.5에 처음 추가됨). 추가 정보here .

  • 스크립팅된 구문: 파이프라인을 작성하는 전통적인 방법입니다. 이 옵션은 엄격하게 Apache Groovy Lang 구문을 사용하여 파이프라인의 모든 단계를 선언합니다.

  • 젠킨스 파일



    Jenkins로 작업할 때 파이프라인을 자동화하기 위한 두 가지 선택 사항이 있습니다.
  • 인라인 파이프라인 작업
  • Jenkinsfile 작업.

  • 이것은 Jenkinsfile이 어떻게 보이는지에 대한 매우 요약된 예입니다.

    pipeline {
      agent any
    
      stages {
        stage("This is stage 1") {
          steps {
            // Cool stuff goes here!
          }
        }
    
        stage("This is stage 2") {
          steps {
            // Cool stuff goes here!
          }
        }
      }
    }
    


    I'm not going to explain the sections of the file here, but you can check this amazing video by TechWorld by Nana:



    권장 사항은 독립 실행형 Jenkinsfile로 작업하는 것입니다. 코드를 빌드, 테스트 및 배포하는 단계가 리포지토리에 속하고 버전을 지정할 수 있기 때문입니다.



    문제



    Jenkinsfile에서 작업할 때마다 실수를 합니다! 😓. 문제는 매번 이러한 변경 사항을 커밋 및 푸시하고 파이프라인을 실행하고 (이번에는) 파이프라인이 실행되는지 확인해야 한다는 것입니다. 이렇게 하면 구문 수정과 함께 불필요한 git 히스토리가 추가됩니다(개인적으로 "fix(jenkins): syntax typo" 와 같은 5개의 커밋 메시지를 작성하는 것이 정말 싫습니다). 어떻게 피할 수 있습니까? 글쎄, 솔루션은 VS Code 😄의 확장을 사용하게 됩니다.

    Visual Studio Code로 Jenkinsfile 유효성 검사



    필요할 것이예요:
  • Jenkins 서버
  • Jenkins 서버에 대한 사용자 자격 증명
  • PC에 설치된 Visual Studio Code.
  • Visual Studio Code용 Jenkins 파이프라인 Linter 커넥터.

  • 먼저 확장 패널에 Jenkins Pipeline Linter Connector 확장을 설치해야 합니다(Windows에서는 Ctrl + Shift + X, macOS에서는 Cmd + Shift + X).



    설치 프로세스가 완료되면 구성해야 합니다. VS Code의 설정 섹션으로 이동합니다(Windows에서는 Ctrl + , macOS에서는 Cmd + ). "검색 설정"필드에 "Jenkins"를 입력합니다.
    아래 필드를 작성하십시오.

  • 커넥터 패스: 여기에 Jenkins 사용자 암호를 입력합니다.

  • 커넥터 URL: 아래 형식에 따라 여기에 Jenkins 서버 URL을 입력합니다.

  • https://<JENKINS SERVER URL>/pipeline-model-converter/validate
    



  • 커넥터 사용자: 여기에 Jenkins 사용자 이름을 입력합니다.



  • 그리고 그게 다야! 이제 원격 Jenkins Server Linter 😄에 대해 확인하여 Jenkinsfile 구문을 린트할 수 있습니다. 이를 사용하려면 Jenkinsfile을 열고 명령 팔레트를 열고 "Validate Jenkins"라고 작성하십시오.



    파일 구문이 유효하면 출력 탭에 이와 유사한 메시지가 표시됩니다.



    결론



    로컬 환경에서 Jenkinsfiles의 유효성을 검사하면 파이프라인 작성에 소요되는 시간을 실제로 개선할 수 있습니다. VS Code용 Jenkins Pipeline Linter Connector Extension을 사용하여 구문을 정기적으로 확인하기만 하면 일반적인 실수를 방지할 수 있습니다.

    폐쇄



    내 게시물을 읽어 주셔서 감사합니다. 나를 팔로우하거나 나를 지원하고 싶다면 buy me a coffee ☕도 할 수 있습니다.

    참조


  • Jenkins
  • Apache Groovy Language
  • Jenkinsfile Syntax
  • Jenkins Pipeline Linter Connector Extension in VS Marketplace
  • 좋은 웹페이지 즐겨찾기