Skip to content

Commit 8bf9554

Browse files
committed
Add option to use stevedore or ono
1 parent 15cd016 commit 8bf9554

11 files changed

+138
-143
lines changed

.gitlab-ci.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,14 @@ build_osx_runtime:
2020
tags:
2121
- buildfarm
2222
- darwin
23+
when: manual
2324
script:
2425
- git submodule update --init --recursive
2526
- chmod +x external/buildscripts/bee
2627
- cd external/buildscripts
2728
- ./bee
2829
- cd ../..
29-
- perl external/buildscripts/build_runtime_osx.pl
30+
- perl external/buildscripts/build_runtime_osx.pl --stevedorebuilddeps=1
3031
- mkdir -p incomingbuilds/osx-i386
3132
- cp -r builds/ incomingbuilds/osx-i386/
3233
artifacts:
@@ -42,13 +43,14 @@ build_osx_classlibs:
4243
tags:
4344
- buildfarm
4445
- darwin
46+
when: manual
4547
script:
4648
- git submodule update --init --recursive
4749
- chmod +x external/buildscripts/bee
4850
- cd external/buildscripts
4951
- ./bee
5052
- cd ../..
51-
- perl external/buildscripts/build_classlibs_osx.pl
53+
- perl external/buildscripts/build_classlibs_osx.pl --stevedorebuilddeps=1
5254
- mkdir -p incomingbuilds/classlibs
5355
- cp -r ZippedClasslibs.tar.gz incomingbuilds/classlibs/
5456
- cd incomingbuilds/classlibs
@@ -68,13 +70,14 @@ build_android:
6870
tags:
6971
- buildfarm
7072
- darwin
73+
when: manual
7174
script:
7275
- git submodule update --init --recursive
7376
- chmod +x external/buildscripts/bee
7477
- cd external/buildscripts
7578
- ./bee
7679
- cd ../..
77-
- bash external/buildscripts/build_runtime_android.sh
80+
- perl external/buildscripts/build_runtime_android.pl --stevedorebuilddeps=1
7881
- mkdir -p incomingbuilds/android/
7982
- cp -r builds/* incomingbuilds/android/
8083
artifacts:
@@ -90,12 +93,13 @@ build_win:
9093
tags:
9194
- buildfarm
9295
- windows
96+
when: manual
9397
script:
9498
- git submodule update --init --recursive
9599
- cd external/buildscripts
96100
- ./bee.exe
97101
- cd ../..
98-
- perl external/buildscripts/build_runtime_win64.pl
102+
- perl external/buildscripts/build_runtime_win64.pl --stevedorebuilddeps=1
99103
- mkdir -p incomingbuilds/win64
100104
- cp -r builds/* incomingbuilds/win64/
101105
artifacts:
@@ -111,12 +115,13 @@ build_win_x86:
111115
tags:
112116
- buildfarm
113117
- windows
118+
when: manual
114119
script:
115120
- git submodule update --init --recursive
116121
- cd external/buildscripts
117122
- ./bee.exe
118123
- cd ../..
119-
- perl external/buildscripts/build_runtime_win.pl
124+
- perl external/buildscripts/build_runtime_win.pl --stevedorebuilddeps=1
120125
- mkdir -p incomingbuilds/win32
121126
- cp -r builds/* incomingbuilds/win32/
122127
artifacts:
@@ -132,6 +137,7 @@ build_win_bare_minimum:
132137
tags:
133138
- buildfarm
134139
- windows
140+
when: manual
135141
script:
136142
- git submodule update --init --recursive
137143
- cd external/buildscripts
@@ -153,13 +159,14 @@ build_linux_x64:
153159
tags:
154160
- buildfarm
155161
- linux
162+
when: manual
156163
script:
157164
- git submodule update --init --recursive
158165
- chmod +x external/buildscripts/bee
159166
- cd external/buildscripts
160167
- ./bee
161168
- cd ../..
162-
- perl external/buildscripts/build_runtime_linux.pl -build64=1
169+
- perl external/buildscripts/build_runtime_linux.pl -build64=1 --stevedorebuilddeps=1
163170
- mkdir -p incomingbuilds/linux64
164171
- cp -r builds/* incomingbuilds/linux64/
165172
artifacts:
@@ -175,13 +182,14 @@ build_linux_x86:
175182
tags:
176183
- buildfarm
177184
- linux
185+
when: manual
178186
script:
179187
- git submodule update --init --recursive
180188
- chmod +x external/buildscripts/bee
181189
- cd external/buildscripts
182190
- ./bee
183191
- cd ../..
184-
- perl external/buildscripts/build_runtime_linux.pl
192+
- perl external/buildscripts/build_runtime_linux.pl --stevedorebuilddeps=1
185193
- mkdir -p incomingbuilds/linux32
186194
- cp -r builds/* incomingbuilds/linux32/
187195
artifacts:
@@ -195,6 +203,7 @@ build_linux_x86:
195203
collate_builds:
196204
image: ubuntu:latest
197205
stage: collate
206+
when: manual
198207
dependencies:
199208
- build_android
200209
- build_osx_runtime

external/buildscripts/Build.bee.cs

Lines changed: 11 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ internal static void Main()
2323
var buildScriptsRoot = monoRoot.Combine("external").Combine("buildscripts");
2424
Console.WriteLine(">>> Build scripts directory: " + buildScriptsRoot);
2525

26-
var monoBuildDeps = monoRoot.Parent.Parent.Combine("mono-build-deps").Combine("build");
27-
Console.WriteLine(">>> Mono build dependecies directory: " + monoBuildDeps);
28-
2926
var buildDependenciesConfigFile = buildScriptsRoot.Combine("buildDependencies.txt");
3027
Console.WriteLine(">>> Mono build dependecies stevedore version config file: " + buildDependenciesConfigFile);
3128

@@ -34,21 +31,14 @@ internal static void Main()
3431

3532
if (buildDependenciesConfigFile.Exists())
3633
{
37-
if (!monoBuildDeps.DirectoryExists())
38-
{
39-
Console.WriteLine(">>> " + monoBuildDeps + " does not exist. Creating it ...");
40-
monoBuildDeps.CreateDirectory();
41-
}
34+
var artifactList = ParseBuildDependenciesConfigFile(buildDependenciesConfigFile.ToString());
4235

43-
var artifactNameIdFilesDictionary = ParseBuildDependenciesConfigFile(buildDependenciesConfigFile.ToString());
44-
45-
foreach (var item in artifactNameIdFilesDictionary)
36+
foreach (var item in artifactList)
4637
{
47-
var artifactName = item.Key.Item1;
48-
var artifactId = item.Key.Item2;
49-
var repoName = item.Key.Item3;
50-
var artifactFiles = item.Value;
51-
DownloadAndCopyArtifact(artifactId, artifactName, repoName, artifactFiles, monoBuildDeps, stevedoreArtifactsDir);
38+
var artifactName = item.Item1;
39+
var artifactId = item.Item2;
40+
var repoName = item.Item3;
41+
DownloadArtifact(artifactId, artifactName, repoName);
5242
}
5343
}
5444
else
@@ -57,46 +47,13 @@ internal static void Main()
5747
}
5848
}
5949

60-
private static void DownloadAndCopyArtifact(string artifactId, string artifactName, string repoName, IEnumerable<NPath> artifacts, NPath monoBuildDeps, NPath stevedoreArtifactsDir)
50+
private static void DownloadArtifact(string artifactId, string artifactName, string repoName)
6151
{
52+
Console.WriteLine($">>> Registering artifact {artifactName}");
6253
var artifact = new StevedoreArtifact(repoName, new ArtifactId(artifactId));
6354
Backend.Current.Register(artifact);
64-
65-
var inputs = new List<NPath>();
66-
var targetFiles = new List<NPath>();
67-
foreach (var item in artifacts)
68-
{
69-
inputs.Add(stevedoreArtifactsDir.Combine(artifactName).Combine(item));
70-
targetFiles.Add(monoBuildDeps.Combine(artifactName).Combine(item));
71-
}
72-
73-
var targetDir = monoBuildDeps;
74-
if (HostPlatform.IsWindows)
75-
{
76-
targetDir = monoBuildDeps.Combine(artifactName);
77-
}
78-
79-
Backend.Current.AddAction(
80-
actionName: "CopyArtifact",
81-
targetFiles: targetFiles.ToArray(),
82-
inputs: inputs.ToArray(),
83-
executableStringFor: ExecutableStringForDirectoryCopy(stevedoreArtifactsDir.Combine(artifactName), targetDir),
84-
commandLineArguments: new string[] { },
85-
allowUnwrittenOutputFiles: true
86-
);
8755
}
8856

89-
private static void ExecuteBuildScript(NPath[] inputFiles, NPath buildScript, NPath buildRoot)
90-
{
91-
Backend.Current.AddAction(
92-
actionName: "ExecuteBuildScript",
93-
targetFiles: new[] { buildRoot},
94-
inputs: inputFiles,
95-
executableStringFor: $"perl {buildScript}",
96-
commandLineArguments: new string[] { },
97-
allowUnwrittenOutputFiles: true
98-
);
99-
}
10057
private static NPath GetMonoRootDir()
10158
{
10259
var exePath = new NPath(System.Reflection.Assembly.GetEntryAssembly().Location);
@@ -109,13 +66,6 @@ private static NPath GetMonoRootDir()
10966
return monoRoot;
11067
}
11168

112-
private static string ExecutableStringForDirectoryCopy(NPath from, NPath target)
113-
{
114-
return HostPlatform.IsWindows
115-
? $"xcopy {from.InQuotes(SlashMode.Native)} {target.InQuotes(SlashMode.Native)} /s /e /d /Y"
116-
: $"cp -r -v {from.InQuotes(SlashMode.Native)} {target.InQuotes(SlashMode.Native)}";
117-
}
118-
11969
private static bool IsRunningOnBuildMachine()
12070
{
12171
var buildMachine = Environment.GetEnvironmentVariable("UNITY_THISISABUILDMACHINE");
@@ -128,21 +78,18 @@ private static bool IsRunningOnBuildMachine()
12878
# name : <stevedore artifact name>
12979
# id : <stevedore artifact id>
13080
# repo : <stevedore repo name (can be testing/public/unityinternal)>
131-
# files : <folder and/or comma-separated list of files downloaded and unpacked>
13281
13382
name: 7z
13483
id: 7z/9df1e3b3b120_12ed325f6a47f0e5cebc247dbe9282a5da280d392cce4e6c9ed227d57ff1e2ff.7z
13584
repo: testing
136-
files : 7z
13785
13886
name: libgdiplus
13987
id : libgdiplus/9df1e3b3b120_4cf7c08770db93922f54f38d2461b9122cddc898db58585864446e70c5ad3057.7z
14088
repo: public
141-
files : libgdiplus,lib2
14289
*/
143-
private static Dictionary<Tuple<string, string, string>, List<NPath>> ParseBuildDependenciesConfigFile(string buildDependenciesConfigFile)
90+
private static List<Tuple<string, string, string>> ParseBuildDependenciesConfigFile(string buildDependenciesConfigFile)
14491
{
145-
var artifactNameIdFilesDictionary = new Dictionary<Tuple<string, string, string>, List<NPath>>();
92+
var artifactNameIdFilesDictionary = new List<Tuple<string, string, string>>();
14693

14794
var fileStream = new FileStream(buildDependenciesConfigFile, FileMode.Open, FileAccess.Read);
14895
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
@@ -158,7 +105,6 @@ private static Dictionary<Tuple<string, string, string>, List<NPath>> ParseBuild
158105
var name = "";
159106
var id = "";
160107
var repoName = "";
161-
var files = "";
162108

163109
//read name
164110
name = line.Split(':')[1].Trim();
@@ -175,25 +121,7 @@ private static Dictionary<Tuple<string, string, string>, List<NPath>> ParseBuild
175121
else
176122
throw new Exception($">>> Invalid {buildDependenciesConfigFile}, repo name does not exist");
177123

178-
//read comma separated folder/files list
179-
if ((line = streamReader.ReadLine()) != null)
180-
files = line.Split(':')[1].Trim();
181-
else
182-
throw new Exception($">>> Invalid {buildDependenciesConfigFile}, files do not exist");
183-
184-
var filesList = new List<NPath>();
185-
if (!string.IsNullOrEmpty(files))
186-
{
187-
if (files.Contains(","))
188-
files.Split(',').ForEach(f => { filesList.Add(new NPath(f.Trim())); });
189-
else
190-
filesList.Add(new NPath(files.Trim()));
191-
}
192-
else
193-
{
194-
throw new Exception($">>> Invalid {buildDependenciesConfigFile}");
195-
}
196-
artifactNameIdFilesDictionary.Add(new Tuple<string, string, string>(name, id, repoName), filesList);
124+
artifactNameIdFilesDictionary.Add(new Tuple<string, string, string>(name, id, repoName));
197125
}
198126
}
199127
}

0 commit comments

Comments
 (0)