Add Jenkinsfile for Fetch and Backpack pipeline (#741)

* Add Jenkinsfile for Fetch and Backpack pipeline
master
Christoph Schütte 2018-02-27 20:26:45 +01:00 committed by GitHub
parent 185ba8b6da
commit 32542786a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 84 additions and 0 deletions

84
jenkins/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,84 @@
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 .'
}
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'
}
}
}