Hello. Carlos,
Anyway, What do you think about
all of agent definition write upper side in Jenkinsfile.
Here in this case,
I need below pipeline. what is the proper location of agent syntax.
pipeline {
stages{
parallel {
stages {
stage('A - sync') {
agent('1st pod') {}
}
stage('A - build') {
agent('1st pod') {}
}
stage('A - test') {
agent('1st pod') {}
}
}
stages {
stage('B - sync') {
agent('2nd pod') {}
}
stage('B - build') {
agent('2nd pod') {}
}
stage('B - test') {
agent('2nd pod') {}
}
}
}
}
}
2018년 5월 24일 목요일 오후 10시 24분 2초 UTC+9, Carlos Sanchez 님의 말:
>
> if you want to use the same template this should work
>
> podTemplate(label: 'm1')
> {
> stage('sync') {
> parallel A: {
> node('m1') {
> sync
> }
> },
> B: {
> node('m1') {
> sync
> }
> }
> }
> }
>
>
> If they are different, move the podTemplate to the parallel section
>
> {
> stage('sync') {
> parallel A: {
> podTemplate(label: 'm1')
> node('m1') {
> sync
> }}
> },
> B: {
> podTemplate(label: 'm2') {
> node('m2') {
> sync
> }}
> }
> }
> }
>
>
>
> On Thu, May 24, 2018 at 2:57 PM 이호광 <[email protected] <javascript:>>
> wrote:
>
>> Hello.
>>
>> In the master branch, my code has feature flags (a.k.a feature toggles).
>>
>> So, I want to make a pipeline like
>>
>> start - sync - build - test - end
>> - sync - build - test -
>> - sync - build - test -
>>
>> (if there are 3 feature sets)
>>
>> sync is like git clone, and code is same or can be little bit different.
>> and build command also can be slightly different for using feature flags.
>>
>> and when compiling, I use make -j (multi-processing) command.
>>
>>
>> So I think creating one pod and multiple containers in Jenkins is not
>> good idea due to heavy CPU and memory needed.
>>
>>
>> I think Jenkins should be able to create multiple pods. Am I right?
>>
>>
>> Is it possible ?
>>
>>
>>
>> In scripted pipeline, I create two container in a one pod successfully.
>> But I don't know create two pods.
>>
>>
>> podTemplate(
>>
>> label: 'mypod',
>>
>> containers: [
>>
>> containerTemplate(name: 'm1', image: 'maven', ttyEnabled: true, command:
>> 'cat'),
>>
>> containerTemplate(name: 'm2', image: 'maven', ttyEnabled: true, command:
>> 'cat')
>>
>> ],
>>
>> volumes: [
>>
>> hostPathVolume(mountPath: '/var/run/docker.sock', hostPath:
>> '/var/run/docker.sock'),
>>
>> ]
>>
>> ) {
>>
>> node('mypod') {
>>
>> stage('Sync') {
>>
>> parallel Syncfortype1: {
>>
>> container(name: 'm1', shell: '/bin/bash') {
>>
>> sync
>>
>> }
>>
>> },
>>
>> Syncfortype2: {
>>
>> container(name: 'm2', shell: '/bin/bash') {
>>
>> sync
>>
>> }
>>
>> }
>>
>> }
>>
>> }
>>
>> }
>>
>> I think there may be the way like, but I can't find.
>>
>> // pre-define
>> podTemplate(label: 'm1')
>> podTemplate(label: 'm2')
>>
>> // use it for node
>> {
>> stage('sync') {
>> parallel A: {
>> node('m1') {
>> sync
>> }
>> },
>> B: {
>> node('m2') {
>> sync
>> }
>> }
>> }
>> }
>>
>> In Declarative pipeline, samely, I can't find out pre-define multiple
>> agents.
>>
>> Guide document says, define agent in stage.
>>
>> pipeline {
>> agent none
>> stages {
>> stage('Example Build') {
>> agent { docker 'maven:3-alpine' }
>> steps {
>> echo 'Hello, Maven'
>> sh 'mvn --version'
>> }
>> }
>> stage('Example Test') {
>> agent { docker 'openjdk:8-jre' }
>> steps {
>> echo 'Hello, JDK'
>> sh 'java -version'
>> }
>> }
>> }
>> }
>>
>>
>>
>> But I don't know how to use that agent at next stage (one of parallel) ?
>>
>>
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Jenkins Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jenkinsci-users/e33ae964-ee84-4dc5-9f85-60335c265f6a%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/jenkinsci-users/e33ae964-ee84-4dc5-9f85-60335c265f6a%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/c88427d7-2668-4975-b133-a49bd894ca64%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.