Skip to content

Commit 9efbde5

Browse files
committed
Update Jenkinsfile.
1 parent 2be8642 commit 9efbde5

File tree

1 file changed

+50
-21
lines changed

1 file changed

+50
-21
lines changed

Jenkinsfile

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,31 @@ pipeline
22
{
33
agent any
44

5+
parameters {
6+
string(name: 'version', defaultValue: params.version ? params.version : '1.0.0')
7+
string(name: 'prerelease_version', defaultValue: params.prerelease_version ? params.prerelease_version : '')
8+
string(name: 'steam_branch', defaultValue: params.steam_branch ? params.steam_branch : '')
9+
}
510
options {
611
buildDiscarder(logRotator(numToKeepStr: '100', artifactNumToKeepStr: '100'))
712
}
813
stages {
914
stage ('Setup Build Environment') {
1015
steps {
11-
sh "sudo sh setup-dev-linux.sh"
16+
script {
17+
STEAM_BRANCH = (params.steam_branch == null || params.steam_branch.allWhitespace) ? '' : params.steam_branch
18+
}
19+
20+
sh "sudo sh setup-dev-linux.sh ${STEAM_BRANCH}"
1221
}
1322
}
1423
stage ('Build Release') {
1524
steps {
16-
sh "sudo msbuild ./Source/ModManager.csproj /p:Configuration=Release"
25+
script {
26+
BUILD_CONFIGURATION = env.BRANCH_NAME == 'stable' ? "Release" : "Debug"
27+
}
28+
29+
sh "sudo msbuild ./Source/ModManager.csproj /p:Configuration=${BUILD_CONFIGURATION}"
1730
}
1831
}
1932
}
@@ -30,39 +43,55 @@ pipeline
3043
returnStdout: true
3144
).trim()
3245

33-
MODINFO_VERSION = sh (
46+
OLD_MODINFO_VERSION = sh (
3447
script: "xmlstarlet sel -t -v '/ModInfo/Version/@value' 000-ModManager/ModInfo.xml",
3548
returnStdout: true
3649
).trim()
3750

38-
MANIFEST_VERSION = sh (
51+
OLD_MANIFEST_VERSION = sh (
3952
script: "xmlstarlet sel -t -v '/ModManifest/Version/text()' 000-ModManager/Manifest.xml",
4053
returnStdout: true
4154
).trim()
4255

43-
try {
44-
UPDATED_GAME_VERSION = sh (
45-
script: "mono ../../VersionRelease.exe Dependencies/7DaysToDieServer_Data/Managed/Assembly-CSharp.dll 000-ModManager/Manifest.xml",
46-
returnStdout: true
47-
).trim()
48-
49-
withCredentials([usernamePassword(credentialsId: "${env.CREDENTIALS}", usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
50-
sh "git config --global user.email '${env.CREDENTIALS_EMAIL}'"
51-
sh "git config --global user.name \$USER"
52-
53-
sh "git checkout -b ${env.BRANCH_NAME}"
54-
sh "git pull"
55-
sh "git add 000-ModManager/Manifest.xml"
56-
sh "git commit -m '${UPDATED_GAME_VERSION}'"
57-
sh "git show-ref"
58-
sh "git push https://\$USER:\$[email protected]/FilUnderscore/ModManager.git ${env.BRANCH_NAME}"
56+
MODINFO_VERSION = params.version
57+
MANIFEST_VERSION = params.version + ((params.prerelease_version == null || params.prerelease_version.allWhitespace) ? '' : ('-' + params.prerelease_version))
58+
59+
withCredentials([usernamePassword(credentialsId: "${env.CREDENTIALS}", usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
60+
sh "git config --global user.email '${env.CREDENTIALS_EMAIL}'"
61+
sh "git config --global user.name \$USER"
62+
63+
sh "git checkout -b ${env.BRANCH_NAME}"
64+
sh "git pull"
65+
66+
if(env.BRANCH_NAME == 'dev') {
67+
if(OLD_MODINFO_VERSION != MODINFO_VERSION || OLD_MANIFEST_VERSION != MANIFEST_VERSION) {
68+
sh "sudo xmlstarlet edit --inplace --update '/ModInfo/Version/@value' --value '${MODINFO_VERSION}' 000-ModManager/ModInfo.xml"
69+
sh "sudo xmlstarlet edit --inplace --update '/ModManifest/Version' --value '${MANIFEST_VERSION}' 000-ModManager/Manifest.xml"
70+
71+
sh "git add 000-ModManager/ModInfo.xml 000-ModManager/Manifest.xml"
72+
sh "git commit -m 'Updated version to ${MANIFEST_VERSION}'."
73+
}
74+
75+
try {
76+
UPDATED_GAME_VERSION = sh (
77+
script: "mono ../../VersionRelease.exe Dependencies/7DaysToDieServer_Data/Managed/Assembly-CSharp.dll 000-ModManager/Manifest.xml",
78+
returnStdout: true
79+
).trim()
80+
81+
sh "git add 000-ModManager/Manifest.xml"
82+
sh "git commit -m '${UPDATED_GAME_VERSION}'"
83+
} catch (err) {
84+
85+
}
5986
}
60-
} catch (err) {
6187

88+
sh "git push https://\$USER:\$[email protected]/FilUnderscore/ModManager.git ${env.BRANCH_NAME}"
6289
}
6390

6491
sh "sudo xmlstarlet edit --inplace --update '/ModInfo/Version/@value' --value '${MODINFO_VERSION}.${GIT_COMMIT_COUNT}' 000-ModManager/ModInfo.xml"
6592
sh "sudo xmlstarlet edit --inplace --update '/ModManifest/Version' --value '${MANIFEST_VERSION}+${env.BRANCH_NAME}.${GIT_COMMIT_COUNT}.${GIT_COMMIT_HASH}' 000-ModManager/Manifest.xml"
93+
94+
sh "sudo xmlstarlet edit --inplace --update '/ModManifest/ManifestUrl' --value 'https://raw.githubusercontent.com/FilUnderscore/ModManager/${env.BRANCH_NAME}/000-ModManager/Manifest.xml' 000-ModManager/Manifest.xml"
6695
}
6796

6897
sh "mv 000-ModManager 000-ModManager-temp"

0 commit comments

Comments
 (0)