일부 질문에 대한 직접적인 대답은 없지만 몇 가지 추가 코딩으로 달성 할 수 있습니다. 어떤 사람들은 달성하기 위해 다른 방법을 찾을 날이 내 마음에 무엇을 함께 해보자 수도 있지만이 부울 매개 변수 FASTFORWARD_TO_GREETING를 추가하고 조작하기 위해 구축 실행하는 동안 제공되는 값을 사용하는 것보다 얻을 수있는
1) How can I run the stage I prefer? For instance Greeting instead of starting from Preparation?
당신의 빌드의 흐름.
if (FASTFORWARD_TO_GREETING == 'false') {
stage('Preparation'){
echo """
Preparing
something
"""
}
}
stage('Greeting') {
parallel 'hello1':{
node{
echo 'hello world 1'
}
}, 'hello2':{
node{
echo 'hello world 2'
}
}
}
2) How do you define the dependencies between stages? I mean the stage called after another one completes
단계가 순차적으로 실행된다, 그래서 무대가 처음 정의 된 경우 먼저 다음 단계로 이동하기 전에 시작하고 완료 할 수 있습니다 : 그래서 당신의 코드는 지금과 같이 표시됩니다. 그러나 병렬 단계에서는 모든 단계가 병렬로 실행되므로이 단계는 사실이 아닙니다. 따라서 예제 코드에서 정의한 종속성은 "준비"단계가 먼저 실행되고 "hello1"및 "hello2"단계 만 병렬로 실행된다는 것입니다. 그러나 "안녕하세요 세계 1"또는 "안녕하세요 세계 2"가 인쇄된다는 보장은 없습니다.
3) Is there a way to limit the stages that a certain user can start? Imagine that I only want a specific user to launch the Greeting stage.
무대 바로 전에 수동 승인 단계를 가질 수 있습니다. 예를 들어, 코드에서 당신이 실행될 준비를 무대 원하는 당신이 무대 인사를 실행하기 전에 수동 승인을 가고 싶어보다, 코드는 다음과 같이 표시됩니다
stage('Preparation'){
echo """
Preparing
something
"""
}
stage concurrency: 1, name: 'approve-greeting'
input id: 'greeting-deploy', message: 'Proceed to Greeting?', ok: 'Deploy'
stage('Greeting') {
parallel 'hello1':{
node{
echo 'hello world 1'
}
}, 'hello2':{
node{
echo 'hello world 2'
}
}
}
이 때 후 무슨 일이 일어날 지 스테이지 준비가 실행될 빌드를 실행하지만 그 이후에는 수동 승인이 진행될 때까지 기다릴 것입니다. 젠킨스 파이프 라인보기에서 무대는 "인사 - 인사"라고 부르며 누군가가보기에서 클릭하여 빌드를 승인 할 때까지 기다릴 것입니다.
4) How do you setup manual stages?
나는 이것이 대답 3에서 응답된다고 생각하십니까?
추가 정보/설명이 필요한 경우 알려 주시기 바랍니다.
편집 : 아래의 추가 답변을 검색 할 수 있습니다 : 그것은 자동으로 수용 단계 트리거 완료되면
빌드 단계를 (모든 사용자가 시작할 수 있습니다).
분명히 젠킨스 파이프 라인에서는 빌드 스테이지와 수락 스테이지가 정상 스테이지로 정의됩니다. 그래서 코드는 간단 같은 것 :이 시점에서
node {
//define any variable here
// Get source code from repo using checkout to directory say stackoverflow
// Get source code from repo for acceptance test using checkout to directory say stackoverflow-test
//Define any tool like Maven etc. location if required.
dir('stackoverflow') {
stage name: 'build'
//Do required steps
}
dir('stackoverflow-test') {
stage name: 'Acceptance'
//Do required steps here
}
, 수용 단계 확인을 완료하면, 두 가지 이 일어날 수 있습니다
어쩌면 QA 단계가 더 많은 테스트를 실행하는 데 필요한 (오이, 설명서 등). 일부 권한이 부여 된 사용자가이 단계를 수행합니다.
제품 소유자가 만족할 때 생산 단계를 시작하여 프로덕션 환경에서 코드를 배포 할 수 있습니다.
당신이 위의 코드 조각은 지금 쓸 수 그래서 후에 입력 옵션을함으로써 할 수있는이
: 위의 값을 다시 흐름을 조작 할 수있는보다
stage 'promotion'
def userInput = input(
id: 'userInput', message: 'Let\'s promote?', parameters: [
[$class: 'BooleanParameterDefinition', defaultValue: false, description: 'Production', name: 'prod'],
[$class: 'BooleanParameterDefinition', defaultValue: false, description: 'ManualQA', name: 'qa']
])
echo ("Env: "+userInput['prod'])
echo ("Target: "+userInput['qa'])
. 마찬가지로 :
자극의 값은 품질 보증의 값이 훨씬 FASTFORWARD_TO_GREETING 내 위의 예제 코드 품질 보증 매뉴얼 단계로 진행보다 사실이라면 생산 단계, 로 진행보다 사실이라면.
EDIT 2 주석 섹션에
또한 응답 질문
:
1) 내가 FASTFORWARD_TO_GREETING는 다음과 같이 정의 될 것 같은
매개 변수를 FASTFORWARD_TO_GREETING 같은 매개 변수를 지정하려면 어떻게 어디서 취업 레벨 parameter
2) 프로모션 단계에서 ManualQA와 Production 중에서 선택해야합니다. 사용자가 ManualQA를 선택하면 해당 단계가 실행되어 생산을 건너 뜁니다. 그 후 나는 그가 원하는 경우 사용자가 약속을 원한다 생산 단계로 승진. 의 전체 정의를 제공 할 수 있다면 파이프 라인이 좋을 것입니다.
다른 입력 단계로 MaualQA 단계 이후에 조작 할 수 있지만 이번에는 단 하나의 매개 변수로 처리 할 수 있습니다. 그래서 단계 승진 한 후,이 단계 ManualQA하고보다 후 입력 단계 아래이 있음 : 사용자가 단계 또는 하지를 실행할 수있는 권한이있는 경우
def userInput1 = input(
id: 'userInput', message: 'Let\'s promote?', parameters: [
[$class: 'BooleanParameterDefinition', defaultValue: false, description: 'Production', name: 'prod']
])
3) 어떻게 확인할 수 있습니다. 이상적으로 역할을 기반으로하고 싶습니다.
역할을 수행하는 방법에 대해 확실하지 않지만 관리자 액세스 권한이 있거나 실행중인 모든 사람이 해당 단계를 실행/승인 할 수있는 권한이 있다고 생각하지만 그것이 어떻게 든 고칠 수 있다면 100 % 확실하지 않습니다.
안녕하세요 마니, 이것 좀 도와 주셔서 감사합니다. 달성하고자하는 진정한 목표는 지속적인 공급 파이프 라인 모델링입니다. 정보로 질문을 업데이트했습니다. 이 일을 도와 줄 수 있기를 바랍니다. – codependent
@codependent 답변을 업데이트했습니다. 도움이 필요하면 알려주세요. –
정말 고마워요, 제가 필요로하는 것에 더 가까워지고 있습니다. 단 3 가지 의구심 : 1) FASTFORWARD_TO_GREETING 같은 매개 변수를 어떻게 또는 어디서 지정해야합니까?2) 판촉 단계에서는 ManualQA와 Production 중 하나를 선택해야합니다. 사용자가 ManualQA를 선택하면 Production을 건너 뛰는 Stage가 실행됩니다. 그 후에 나는 그가 생산 단계로 승진하고 싶다면 사용자를 약속하기를 원한다. 당신이 파이프 라인의 완전한 정의를 제공 할 수 있다면 그것은 좋을 것입니다. 마지막으로 3) 사용자가 스테이지를 실행할 수있는 권한이 있는지 여부를 어떻게 확인할 수 있습니까? 이상적으로 나는 역할에 따라 그것을하고 싶다. 다른 질문보기 : – codependent