cartographer_ros/jenkins/Jenkinsfile

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/cartographer-project/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'
}
}
}