문제

우리는 큰 허드슨 설정으로 많은 공항 빌드가 실행되는 모든 시간입니다.현재를 하나의 빌드를 제대로 작동하지만,나는 때때로 기다릴 때 예정 빌드를 입력합니다.이 있습 방법을 모두 사용이 예정된 구축 그래서 제가 집중할 수 있습니다에 나는 귀찮은 건축,조정 없이"cron"설정의 각 구축?

도움이 되었습니까?

해결책

그것을 말해 준비를 종료됩니다.


에서 편집 OP (banjollity)
그것은 완전하지 않지만,저는 이것을 생각하는 합리적인"몇 번의 마우스 클릭 솔루션 기본 설치하는"종류의 솔루션,따라서 허용되는 대답이다.

  1. 큐 작업
  2. 허드슨 말을 할 준비를 종료됩니다.이렇게 하면 다른 작업을 실행되고 있다.
  3. 진단 결과 함께 나의 일,commit 새 코드 합니다.(내가 이 일을 사랑하).
  4. 허드슨은 취소 종료됩니다.
  5. Goto 단계 1.

다른 팁

그만큼 '구성 슬라이싱' 기여한 플러그인을 사용하면 많은 작업의 CRON 설정을 동시에 수정할 수 있습니다. 이를 통해 원하는 대량을 변경할 수 있습니다.

Mikezx6R의 제안을 확장하여 특정 문자열과 일치하는 모든 빌드를 비활성화하는 빠른 방법을 생각해 냈습니다.

[user@server jobs] $ for i in *build_name*; do sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done

"for"루프의 특정 빌드 이름을 반복 할 수도 있습니다.

[user@server jobs] $ for i in build1 build2 build3; do sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done

SED 전에 "에코"를 넣어서 무엇을 할 것인지 먼저 테스트 할 수 있습니다.

[user@server jobs] $ for i in build1 build2 build3; do echo sed -i s/"disabled>false"/"disabled>true/" $i/config.xml; done

반대로 SED 스크립트를 전환하여 모든 일치하는 작업을 다시 활성화 할 수 있습니다.

[user@server jobs] $ for i in build1 build2 build3; do sed -i s/"disabled>true"/"disabled>false/" $i/config.xml; done

직접적인 방법은 보이지 않지만 모든 작업에 대해 config.xml을 업데이트하는 내용을 작성할 수 있습니다.

Hudson의 각 작업 디렉토리에는 config.xml이 있습니다. 그만큼u003Cproject> Disabled라는 요소가있어 True로 업데이트 할 수 있으므로 해당 빌드를 비활성화합니다.

이상적이지는 않지만 디렉토리를 걷고 비활성화 된 값을 변경하는 스크립트가 있으면 언제든지 사용할 수 있습니다.

비슷한 것을 찾아서이 질문에 저를 가져 왔으며, 나는 Michael Donohue의 답변 (그리고 그가 기여한 플러그인)의 또 다른 이점이 있다는 것을 깨달았습니다.

"Configuration Slicing"을 사용하면 작업의 하위 집합을 한 번에 쉽게 비활성화 할 수 있습니다. 이것이 바로 8 개 관련 작업 중 7 개 중 7 개를 일시적으로 비활성화하는 데 필요한 것입니다. 고마워 마이클!

Jenkins 콘솔을 사용하여 수행 할 수 있습니다. 그루비 스크립트를 실행하고 거의 모든 것을 수행합니다.

다음 스크립트는 모든 프로젝트를 통해 반복됩니다. TimerTrigger가 있는지 확인하십시오. (다른 트리거 의이 점검을 확장 할 수 있습니다)

import hudson.model.Hudson
import hudson.model.Project
import hudson.triggers.TimerTrigger
import hudson.triggers.Trigger
import hudson.triggers.TriggerDescriptor

//All the projects on which we can apply the getBuilders method
def allProjects = Hudson.instance.items.findAll { it instanceof Project }
def projectsToWorkOn = [];
allProjects.each { Project project ->
    Map<TriggerDescriptor, Trigger> triggers =
            project.getTriggers();
    triggers.each { trigger ->

        if (trigger.value instanceof TimerTrigger) {
            projectsToWorkOn.push(project)


        }

    }
}


projectsToWorkOn
        .each { Project project ->

    project.disable();
    project.save()
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top