111 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Groovy
		
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Groovy
		
	
	
| 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'
 | |
|       }
 | |
|     }
 | |
| }
 |