podTemplate(label: 'node-0', containers: [ containerTemplate( name: 'jnlp', image: 'eggsy84/gcp-jenkins-slave-k8s-seed:latest', ttyEnabled: false, command: '', privileged: true, alwaysPullImage: false, workingDir: '/home/jenkins', args: '${computer.jnlpmac} ${computer.name}' ) ], volumes: [ secretVolume(mountPath: '/opt/config', secretName: 'gcloud-svc-account'), hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'), persistentVolumeClaim(claimName: 'data-claim-compile', mountPath: '/data'), ] ) { node('node-0') { stage('Compile') { sh 'gcloud auth activate-service-account --key-file=/opt/config/gcloud-svc-account.json' sh 'cd /data && rm -Rf *' sh 'cd /data && git clone https://github.com/googlecartographer/cartographer_ros' sh 'cd /data/cartographer_ros && docker build -f jenkins/Dockerfile.kinetic -t kinetic-jenkins-slave --build-arg CACHEBUST=$(date +%s) .' } stage('Push') { sh 'docker tag kinetic-jenkins-slave eu.gcr.io/cartographer-141408/kinetic-jenkins-slave' sh 'gcloud docker -- push eu.gcr.io/cartographer-141408/kinetic-jenkins-slave' sh 'cd /data && rm -Rf *' } } } podTemplate(label: 'node-1', containers: [ containerTemplate( name: 'jnlp', image: 'eu.gcr.io/cartographer-141408/kinetic-jenkins-slave:latest', ttyEnabled: false, command: '', privileged: true, alwaysPullImage: true, workingDir: '/home/jenkins', args: '${computer.jnlpmac} ${computer.name}' ) ], volumes: [ secretVolume(mountPath: '/opt/config', secretName: 'gcloud-svc-account'), hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'), persistentVolumeClaim(claimName: 'data-claim-compile', mountPath: '/data'), ] ) { node('node-1') { stage('Run Fetch Pipeline') { sh 'gcloud auth activate-service-account --key-file=/opt/config/gcloud-svc-account.json' sh 'GOOGLE_APPLICATION_CREDENTIALS="/opt/config/gcloud-svc-account.json" GOOGLE_CLOUD_DISABLE_GRPC=True python /worker.py --worker_id 0 --num_workers 1 --pipeline_id fetch' } } } podTemplate(label: 'node-2', containers: [ containerTemplate( name: 'jnlp', image: 'eu.gcr.io/cartographer-141408/kinetic-jenkins-slave:latest', ttyEnabled: false, command: '', privileged: true, alwaysPullImage: true, workingDir: '/home/jenkins', args: '${computer.jnlpmac} ${computer.name}' ) ], volumes: [ secretVolume(mountPath: '/opt/config', secretName: 'gcloud-svc-account'), hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'), persistentVolumeClaim(claimName: 'data-claim-compile', mountPath: '/data'), ] ) { node('node-2') { stage('Run Backpack Pipeline') { sh 'gcloud auth activate-service-account --key-file=/opt/config/gcloud-svc-account.json' sh 'GOOGLE_APPLICATION_CREDENTIALS="/opt/config/gcloud-svc-account.json" GOOGLE_CLOUD_DISABLE_GRPC=True python /worker.py --worker_id 0 --num_workers 1 --pipeline_id backpack' } } } podTemplate(label: 'node-3', containers: [ containerTemplate( name: 'jnlp', image: 'eu.gcr.io/cartographer-141408/kinetic-jenkins-slave:latest', ttyEnabled: false, command: '', privileged: true, alwaysPullImage: true, workingDir: '/home/jenkins', args: '${computer.jnlpmac} ${computer.name}' ) ], volumes: [ secretVolume(mountPath: '/opt/config', secretName: 'gcloud-svc-account'), hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'), persistentVolumeClaim(claimName: 'data-claim-compile', mountPath: '/data'), ] ) { node('node-3') { stage('Run Toru Pipeline') { sh 'gcloud auth activate-service-account --key-file=/opt/config/gcloud-svc-account.json' sh 'GOOGLE_APPLICATION_CREDENTIALS="/opt/config/gcloud-svc-account.json" GOOGLE_CLOUD_DISABLE_GRPC=True python /worker.py --worker_id 0 --num_workers 1 --pipeline_id toru' } } }