-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathJenkinsfile
51 lines (44 loc) · 1.37 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
library("defra-library@$BRANCH_NAME")
def defaultBranch = 'master'
def pr = ''
def repoName = ''
def versionFileName = 'VERSION'
node {
checkout scm
try {
stage('Set PR and version variables') {
(repoName, pr, versionTag) = build.getVariables(version.getFileVersion(versionFileName), defaultBranch)
}
if (pr != '') {
stage('Verify version incremented') {
version.verifyFileIncremented(versionFileName)
}
stage('Trigger GitHub pre release') {
withCredentials([
string(credentialsId: 'github-auth-token', variable: 'gitToken')
]) {
def betaVer = "beta-${version.getFileVersion(versionFileName)}"
def releaseSuccess = release.trigger(betaVer, repoName, betaVer, gitToken, true)
}
}
}
if (pr == '') {
stage('Trigger GitHub release') {
withCredentials([
string(credentialsId: 'github-auth-token', variable: 'gitToken')
]) {
def releaseSuccess = release.trigger(versionTag, repoName, versionTag, gitToken)
if (releaseSuccess) {
release.addSemverTags(versionTag, repoName)
}
}
}
}
} catch(e) {
echo("Build failed with message: $e.message")
stage('Send build failure slack notification') {
notifySlack.buildFailure('generalbuildfailures', defaultBranch)
}
throw e
}
}