forked from Terasology/Sample
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
67 lines (61 loc) · 2.32 KB
/
Jenkinsfile
File metadata and controls
67 lines (61 loc) · 2.32 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
pipeline {
agent {
label "default-java"
}
environment {
realProjectName = findRealProjectName()
}
stages {
stage('Checkout') {
steps {
echo "Going to check out the things !"
checkout scm
}
}
stage('Prep workspace') {
steps {
copyArtifacts(projectName: "Terasology/TerasologySonar", filter: "modules/Core/build.gradle", flatten: true, selector: lastSuccessful())
copyArtifacts(projectName: "Terasology/TerasologySonar", filter: "*, gradle/wrapper/**, config/**, natives/**", selector: lastSuccessful())
echo "Real project name: ${env.realProjectName}"
sh """
ls
rm -f settings.gradle
rm -f gradle.properties
echo "rootProject.name = '${env.realProjectName}'" >> settings.gradle
cat settings.gradle
"""
}
}
stage('Build') {
steps {
rtGradleResolver (
id: 'teraResolver',
serverId: 'TerasologyArtifactory',
repo: 'virtual-repo-live'
)
rtGradleDeployer (
id: 'teraDeployer',
serverId: 'TerasologyArtifactory',
repo: 'terasology-snapshot-local',
)
rtGradleRun (
// Set to true if the Artifactory Plugin is already defined in build script.
usesPlugin: true,
// Set to true if you'd like the build to use the Gradle Wrapper.
useWrapper: true,
tasks: 'clean check jar generatePomFileForMavenJavaPublication artifactoryPublish',
resolverId: 'teraResolver',
deployerId: 'teraDeployer',
)
rtPublishBuildInfo (
serverId: 'TerasologyArtifactory'
)
}
}
}
}
def String findRealProjectName() {
def jobNameParts = env.JOB_NAME.tokenize('/') as String[]
println "Job name parts: $jobNameParts"
return jobNameParts.length < 2 ? env.JOB_NAME : jobNameParts[jobNameParts.length - 2]
}