2017-04-26 1 views
14

젠킨스 선언 파이프 라인에서 빌드 이름과 설명을 설정하고 싶지만 올바른 방법을 찾을 수 없습니다. 나는 파이프 라인 다음에 환경 브래킷을 사용하고, 에이전트 브래킷 등에서 노드 브래킷을 사용하여 시도했다. 나는 항상 구문 오류가 발생한다.젠킨스 선언 파이프 라인에서 빌드 이름 및 설명 설정

내 Jenkinsfile의 마지막 버전과 같이 간다 :

pipeline { 
    stages { 
     stage("Build") { 
      steps { 
       echo "Building application..." 
       bat "%ANT_HOME%/bin/ant.bat clean compile" 
       currentBuild.name = "MY_VERSION_NUMBER" 
       currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER" 
      } 
     } 
     stage("Unit Tests") { 
      steps { 
       echo "Testing (JUnit)..." 
      echo "Testing (pitest)..." 
       bat "%ANT_HOME%/bin/ant.bat run-unit-tests" 
      } 
     } 
     stage("Functional Test") { 
      steps { 
       echo "Selenium..." 
      } 
     } 
     stage("Performance Test") { 
      steps { 
       echo "JMeter.." 
      } 
     } 
     stage("Quality Analysis") { 
      steps { 
       echo "Running SonarQube..." 
       bat "%ANT_HOME%/bin/ant.bat run-sonarqube-analysis" 
      } 
     } 
     stage("Security Assessment") { 
      steps { 
       echo "ZAP..." 
      } 
     } 
     stage("Approval") { 
      steps { 
      echo "Approval by a CS03" 
      } 
     } 
     stage("Deploy") { 
      steps { 
       echo "Deploying..." 
      } 
     } 
    } 
    post {  
     always { 
      junit '/test/reports/*.xml' 
     } 
     failure { 
      emailext attachLog: true, body: '', compressLog: true, recipientProviders: [[$class: 'CulpritsRecipientProvider'], [$class: 'DevelopersRecipientProvider']], subject: '[JENKINS] MY_PROJECT build failed', to: '...recipients...' 
     } 
     success { 
      emailext attachLog: false, body: '', compressLog: false, recipientProviders: [[$class: 'DevelopersRecipientProvider']], subject: '[JENKINS] MY_PROJECT build succeeded', to: '...recipients...' 
     } 
    }  
} 

오류는 다음과 같습니다 이상적으로

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 
WorkflowScript: 11: Expected a step @ line 11, column 5. 
       currentBuild.name = "MY_VERSION_NUMBER" 
    ^

WorkflowScript: 12: Expected a step @ line 12, column 5. 
       currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER" 
    ^

, 나는 build.properties에서 MY_PROJECT 및 MY_VERSION_NUMBER을 읽을 수 있도록하고 싶습니다 파일 또는 젠킨스 빌드 로그에서. 그 요구 사항에 대한 지침도 감사 할 것입니다.

stage("Build") { 
    steps { 
     echo "Building application..." 
     bat "%ANT_HOME%/bin/ant.bat clean compile" 

     script { 
      def props = readProperties file: 'build.properties' 
      currentBuild.displayName = "v" + props['application.version'] 
     } 
    } 

지금 빌드 버전이 자동으로 build.properties 파일을 읽어 파이프 라인 중에 설정됩니다

UPDATE는

내가 아래에 있던 대답은이 일을 다음 기준으로합니다.

답변

21

나는 이것이 당신이 원하는 것을 할 것이라고 생각합니다. 나는 script 블록 내부에 그것을 할 수 있었다 :

pipeline { 
    stages { 
     stage("Build"){ 
      steps { 
       script { 
        currentBuild.displayName = "The name." 
        currentBuild.description = "The best description." 
       } 
       ... do whatever. 
      } 
     } 
    } 
} 

스크립트는 탈출 해치의 종류 선언 파이프 라인에서 얻을 수 있습니다. 아마 그것을 할 수있는 선언적 방법이 있지만 그것을 찾을 수 없습니다. 그리고 하나 더. 당신이 currentBuild.name 대신 currentBuild.displayName을 원한다고 생각합니다. 젠킨스 글로벌 용 문서에서 currentBuild 아래에서 name 속성을 보지 못했습니다.

+0

불가사의. 고맙습니다! –

관련 문제