2016-06-08 4 views
1

Jenkins에서 빌드하고 Octopus에 배포하려는 응용 프로그램이 있습니다. 이 작업을 수행 할 때 Octopus에 보내는 릴리스 버전을 만들어야합니다. 이 릴리스 버전의 경우 번호를 부여해야합니다 (예 : "C:\Octopus\Octo.exe" create-release --project APP --version 4.8 --packageversion=4.8)자동 증가 릴리스 버전 Jenkins

버전 번호가 자동으로 증가하도록하려면 어떻게해야합니까?

감사합니다 : (예 내가 릴리스 버전 번호 4.8, 내가 응용 프로그램을 빌드 다음에 내가 릴리스 버전 번호 4.9을 만들려면 응용 프로그램을 빌드 가지고 문어에서 만든)

+0

젠킨스는 CI 도구입니다 . 버전 번호 관리는 빌드 관리 도구의 작업입니다. 나는 다른 해결책을 보지는 못하지만 귀하의 경우에는 수작업 과정을 사용합니다. –

+0

@GeroldBroser 이걸 어떻게 할 수 있습니까? Thx – Sebastian

+0

[GROM - 일반 릴리스 주문 관리] (http://codereview.stackexchange.com/q/131584/58906)를 참조하십시오. 그곳에서 수정 되 자마자 젠킨스 (Jenkins)를 포함한 답변으로 게시 할 것입니다. –

답변

1

당신은 (단계 구축 "시스템 그루비 스크립트를 실행"에 의해 실행) 버전을 저장하는 작업 속성을 사용하고 다음 스크립트를 실행할 때마다 업데이트 할 수 있습니다 :

import jenkins.model.Jenkins 
import hudson.model.* 

def jenkins = Jenkins.getInstance() 
def jobName = "yourJobName" 
String versionType = "minor" 
def job = jenkins.getItem(jobName) 

//get the current version parameter and update its default value 
paramsDef = job.getProperty(ParametersDefinitionProperty.class) 
if (paramsDef) { 
    paramsDef.parameterDefinitions.each{ 
     if("version".equals(it.name)){ 
      println "Current version is ${it.defaultValue}" 
      it.defaultValue = getUpdatedVersion(versionType, it.defaultValue) 
      println "Next version is ${it.defaultValue}" 
     } 
    } 
} 

//determine the next version by the required type 
//and incrementing the current version 

def getUpdatedVersion(String versionType, String currentVersion){ 

    def split = currentVersion.split('\\.') 
    switch (versionType){ 
     case "minor.minor": 
      split[2]=++Integer.parseInt(split[2]) 
      break 
     case "minor": 
      split[1]=++Integer.parseInt(split[1]) 
      break; 
     case "major": 
      split[0]=++Integer.parseInt(split[0]) 
      break; 
    } 
    return split.join('.') 
} 
+0

부탁드립니다. – Sebastian

2

젠킨스는 일부 environment variables 사용할 수 제공 각 빌드 명령에; 그것들 중 하나는 빌드 번호, 증가하는 숫자입니다.

버전 번호에 구멍이있는 경우 버전 번호를 변경하여 4.8-142와 같은 빌드 번호를 입력하십시오. 142는 젠킨스의 빌드 번호입니다. 이것은 semver에서 증가하는 버전 번호를 제공하며보다 실질적인 방법으로 실제 버전을 제어하게합니다.

버전에서 빌드 번호가 만족스럽지 않은 경우 버전 번호를 업데이트하고 어딘가에 파일에 저장하는 게시 빌드 스크립트가 있어야합니다. 그런 다음 해당 파일 내용을 EnvInject plugin 또는 parametrized build을 사용하여 삽입 할 수 있습니다.