-
Notifications
You must be signed in to change notification settings - Fork 4
/
Jenkinsfile
128 lines (117 loc) · 3.21 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
pipeline
{
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Projucer') {
steps {
buildProjucer("JUCE")
}
}
stage('FFmpeg')
{
steps {
buildFFmpeg("libraries/ffmpeg")
}
}
// stage('Build Projects')
// {
// parallel
// {
stage('VideoPlayer')
{
steps {
createProject("VideoPlayer/VideoPlayer", "JUCE")
buildProject("VideoPlayer", "VideoPlayer", "Release")
}
}
stage('VideoEditor')
{
steps {
createProject("VideoEditor/VideoEditor", "JUCE")
buildProject("VideoEditor", "VideoEditor", "Release")
}
}
// }
// }
}
}
void buildProjucer(String jucepath)
{
if (env.BUILD_SERVER_PLATFORM == 'mac')
{
sh """
cd ${jucepath}/extras/Projucer
xcodebuild -configuration Release -project Builds/MacOSX/Projucer.xcodeproj
"""
}
else if (env.BUILD_SERVER_PLATFORM == 'linux')
{
sh """
cd ${jucepath}/extras/Projucer/Builds/LinuxMakefile
make -j 8
"""
}
else if (env.BUILD_SERVER_PLATFORM == 'windows')
{
bat """
cd "${jucepath}\\extras\\Projucer"
"${env.MSBUILD2019}" /p:Configuration=Release Builds\\VisualStudio2019\\Projucer.sln
"""
}
}
void createProject(String project, String jucepath)
{
if (env.BUILD_SERVER_PLATFORM == 'mac')
sh "${jucepath}/extras/Projucer/Builds/MacOSX/build/Release/Projucer.app/Contents/MacOS/Projucer --resave ${project}.jucer"
else if (env.BUILD_SERVER_PLATFORM == 'linux')
sh "xvfb-run ${jucepath}/extras/Projucer/Builds/LinuxMakefile/build/Projucer --resave ${project}.jucer"
else if (env.BUILD_SERVER_PLATFORM == 'windows')
bat "${jucepath}\\extras\\Projucer\\Builds\\VisualStudio2019\\x64\\Release\\App\\Projucer.exe --resave ${project}.jucer"
}
void buildProject(String folder, String project, String configuration)
{
if (env.BUILD_SERVER_PLATFORM == 'mac')
{
sh """
cd ${folder}
xcodebuild -configuration ${configuration} -project Builds/MacOSX/${project}.xcodeproj
"""
}
else if (env.BUILD_SERVER_PLATFORM == 'linux')
{
sh """
cd ${folder}/Builds/LinuxMakefile
make -j 8
"""
}
else if (env.BUILD_SERVER_PLATFORM == 'windows')
{
bat """
cd "${folder}"
"${env.MSBUILD2019}" /p:Configuration=${configuration} Builds\\VisualStudio2019\\${project}.sln
"""
}
}
void buildFFmpeg(String folder)
{
if (env.BUILD_SERVER_PLATFORM == 'mac' ||
env.BUILD_SERVER_PLATFORM == 'linux')
{
sh """
PATH=$PATH:/usr/local/bin
cd scripts
./build_ffmpeg_osx.sh
"""
}
else if (env.BUILD_SERVER_PLATFORM == 'windows')
{
bat """
cd "${folder}"
"""
}
}