Skip to content

Commit cd19361

Browse files
Merge pull request #189 from FromDoppler/DE-971-new-jenkins-compatibility
build: remove symbolic link for Jenkinsfile
2 parents 59a85ee + 8fb99a1 commit cd19361

File tree

2 files changed

+112
-113
lines changed

2 files changed

+112
-113
lines changed

Jenkinsfile

Lines changed: 0 additions & 112 deletions
This file was deleted.

doppler-jenkins-ci.groovy

Lines changed: 0 additions & 1 deletion
This file was deleted.

doppler-jenkins-ci.groovy

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
pipeline {
2+
agent any
3+
stages {
4+
stage('Verify git commit conventions') {
5+
steps {
6+
sh 'sh ./gitlint.sh'
7+
}
8+
}
9+
stage('Verify Dockerfile') {
10+
steps {
11+
sh 'sh ./dockerlint.sh'
12+
}
13+
}
14+
stage('Verify Format') {
15+
steps {
16+
sh 'docker build --target verify-format .'
17+
}
18+
}
19+
stage('Verify .sh files') {
20+
steps {
21+
sh 'docker build --target verify-sh .'
22+
}
23+
}
24+
stage('Restore') {
25+
steps {
26+
sh 'docker build --target restore .'
27+
}
28+
}
29+
stage('Build') {
30+
steps {
31+
sh 'docker build --target build .'
32+
}
33+
}
34+
stage('Test') {
35+
steps {
36+
sh 'docker build --target test .'
37+
}
38+
}
39+
stage('Publish in dopplerdock') {
40+
environment {
41+
DOCKER_CREDENTIALS_ID = "dockerhub_dopplerdock"
42+
DOCKER_IMAGE_NAME = "dopplerdock/hello-microservice"
43+
}
44+
stages {
45+
stage('Publish pre-release images from pull request') {
46+
when {
47+
changeRequest target: 'main'
48+
}
49+
steps {
50+
withDockerRegistry(credentialsId: "${DOCKER_CREDENTIALS_ID}", url: "") {
51+
sh 'sh build-n-publish.sh --image=${DOCKER_IMAGE_NAME} --commit=${GIT_COMMIT} --name=pr-${CHANGE_ID}'
52+
}
53+
}
54+
}
55+
stage('Publish pre-release images from main') {
56+
when {
57+
branch 'main'
58+
}
59+
steps {
60+
withDockerRegistry(credentialsId: "${DOCKER_CREDENTIALS_ID}", url: "") {
61+
sh 'sh build-n-publish.sh --image=${DOCKER_IMAGE_NAME} --commit=${GIT_COMMIT} --name=main'
62+
}
63+
}
64+
}
65+
stage('Publish pre-release images from INT') {
66+
when {
67+
branch 'INT'
68+
}
69+
steps {
70+
withDockerRegistry(credentialsId: "${DOCKER_CREDENTIALS_ID}", url: "") {
71+
sh 'sh build-n-publish.sh --image=${DOCKER_IMAGE_NAME} --commit=${GIT_COMMIT} --name=INT'
72+
}
73+
}
74+
}
75+
stage('Publish final version images') {
76+
when {
77+
expression {
78+
return isVersionTag(readCurrentTag())
79+
}
80+
}
81+
steps {
82+
withDockerRegistry(credentialsId: "${DOCKER_CREDENTIALS_ID}", url: "") {
83+
sh 'sh build-n-publish.sh --image=${DOCKER_IMAGE_NAME} --commit=${GIT_COMMIT} --version=${TAG_NAME}'
84+
}
85+
}
86+
}
87+
}
88+
}
89+
}
90+
}
91+
92+
def boolean isVersionTag(String tag) {
93+
echo "checking version tag $tag"
94+
95+
if (tag == null) {
96+
return false
97+
}
98+
99+
// use your preferred pattern
100+
def tagMatcher = tag =~ /v\d+\.\d+\.\d+/
101+
102+
return tagMatcher.matches()
103+
}
104+
105+
def CHANGE_ID = env.CHANGE_ID
106+
107+
// https://stackoverflow.com/questions/56030364/buildingtag-always-returns-false
108+
// workaround https://issues.jenkins-ci.org/browse/JENKINS-55987
109+
// TODO: read this value from Jenkins provided metadata
110+
def String readCurrentTag() {
111+
return sh(returnStdout: true, script: 'echo ${TAG_NAME}').trim()
112+
}

0 commit comments

Comments
 (0)