Skip to content

Commit 8d13e95

Browse files
committed
Add Jenkinsfile for container image building and pushing to DockerHub
1 parent f0f9cc5 commit 8d13e95

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

Jenkinsfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
void setBuildStatus(String message, String state) {
2+
step([
3+
$class: "GitHubCommitStatusSetter",
4+
reposSource: [$class: "ManuallyEnteredRepositorySource", url: "${env.GIT_URL}"],
5+
contextSource: [$class: "ManuallyEnteredCommitContextSource", context: "ci/docker/dataverse-sample-data"],
6+
errorHandlers: [[$class: "ChangingBuildStatusErrorHandler", result: "UNSTABLE"]],
7+
statusResultSource: [ $class: "ConditionalStatusResultSource", results: [[$class: "AnyBuildResult", message: message, state: state]] ]
8+
]);
9+
}
10+
11+
pipeline {
12+
agent any
13+
environment {
14+
DOCKER_IMAGE_NAME = "iqss/dataverse-sample-data"
15+
DOCKER_IMAGE_TAG = "build-${env.BRANCH_NAME}"
16+
DOCKER_WORKDIR = "."
17+
DOCKER_HUB_CRED = "dockerhub-dataversebot"
18+
DOCKER_REGISTRY = "https://registry.hub.docker.com"
19+
}
20+
stages {
21+
stage('build') {
22+
when {
23+
anyOf {
24+
branch 'master'
25+
branch '13-dockerize'
26+
}
27+
}
28+
steps {
29+
script {
30+
docker_image = docker.build("${env.DOCKER_IMAGE_NAME}:${env.DOCKER_IMAGE_TAG}", "--pull ${env.DOCKER_WORKDIR}")
31+
}
32+
}
33+
}
34+
stage('push') {
35+
when {
36+
anyOf {
37+
branch 'master'
38+
branch '13-dockerize'
39+
}
40+
}
41+
steps {
42+
script {
43+
// Push master image to latest tag
44+
docker.withRegistry("${env.DOCKER_REGISTRY}", "${env.DOCKER_HUB_CRED}") {
45+
docker_image.push("latest")
46+
}
47+
}
48+
}
49+
}
50+
}
51+
post {
52+
success {
53+
setBuildStatus("Image build and push succeeded", "SUCCESS");
54+
}
55+
failure {
56+
setBuildStatus("Image build or push failed", "FAILURE");
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)