-
Notifications
You must be signed in to change notification settings - Fork 459
Expand file tree
/
Copy pathproject.metafile
More file actions
225 lines (206 loc) · 9.2 KB
/
project.metafile
File metadata and controls
225 lines (206 loc) · 9.2 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
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# DESCRIPTION-----------------------------------------------------------------------------------------------------------------
# This file is the central configuration file defining test environments, platforms, projects, editors and other parameters used.
# Data from this file is used to generate CI pipeline configurations through templating in other .yamato/ files.
# This provides consistent environment definitions across all CI jobs. It's easier to modify values in central place (for example image reference) than having to modify every job
# VALUE MEANING----------------------------------------------------------------------------------------------------------------------------
# Usual fields being defined are
# name --> Identifier used to distinguish different configurations in the CI pipeline
# type --> Specifies the Bokken agent type (e.g., Unity::VM, Unity::VM::osx, Unity::mobile::shield)
# image --> Defines the package-ci Bokken image to use for the environment (e.g., package-ci/ubuntu-22.04:v4). This is basically a device configuration
# flavor --> Determines the VM size/resources (e.g., b1.small, b1.large, m1.mac)
# smaller_flavor --> An override for flavor that determines the VM size/resources for lighter weight jobs that can run on a smaller vm
# larger_flavor --> An override for flavor that determines the VM size/resources for heavier weight jobs that can need a bigger vm
# standalone --> Specifies the build target platform (e.g., StandaloneLinux64, Android, IOS)
# model --> Defines specific hardware model requirements (e.g., rtx2080, iPhone model 13). Notice that trunk currently (19.08.2025) has 13.0 as minimal iOS version which devices below this are not supporting
# base --> Indicates the base operating system for build operations (e.g., win, mac)
# architecture --> Specifies the target CPU architecture (e.g., armv7, arm64)
# SMALL AGENT CONFIGURATION---------------------------------------------------------------------------------------------------
# The small agent was created to handle jobs that don't involve running Unity and are in general super light when it comes to resource usage (for example pack job).
# It uses ubuntu since Linux VMs are faster and cheaper to provision than Mac or Windows Virtual Machines (VMs).
# The b1.small flavour is nearly always sufficient for jobs that don’t involve running Unity Editor.
small_agent_platform:
- name: ubuntu
type: Unity::VM
image: package-ci/ubuntu-22.04:v4.77.0
flavor: b1.small
# PLATFORM CONFIGURATIONS----------------------------------------------------------------------------------------------------------------
# test_platforms specifies platforms that project will/can be tested on.
# For desktops we include Windows, Ubuntu and Mac, for mobiles we include Android and iOS, for consoles we include ps4, ps5, switch, xbox360 and xboxOne
# For mobile and console a split was required for build and test jobs and this is also applied for desktops for consistency (though for desktop this split is not required)
test_platforms:
# Default platform is used for all basic jobs. Ubuntu was chosen since it's fastest and most available
default:
- name: ubuntu
type: Unity::VM
image: package-ci/ubuntu-22.04:v4.77.0
flavor: b1.large
standalone: StandaloneLinux64
desktop:
- name: ubuntu
type: Unity::VM
image: package-ci/ubuntu-22.04:v4.77.0
flavor: b1.large
smaller_flavor: b1.medium
larger_flavor: b1.xlarge
standalone: StandaloneLinux64
model: rtx2080
- name: win
type: Unity::VM
image: package-ci/win10:v4
flavor: b1.large
smaller_flavor: b1.medium
larger_flavor: b1.xlarge
standalone: StandaloneWindows64
model: rtx2080
- name: mac
type: Unity::VM::osx
image: package-ci/macos-13-arm64:v4 # ARM64 to support M1 model (below)
flavor: m1.mac
# mac doesn't have a different vm sizes. We define it anyway as it simplifies the yaml templating to have it defined.
smaller_flavor: m1.mac
larger_flavor: m1.mac
standalone: StandaloneOSX
model: M1 # The default model (an x64 Intel Mac VM) quite often caused a known issue of doing all the bitflips in packages resulting in failures
# For mobile devices there is a split between the build and run phase so there is a need of splitting specification for both
# TODO: For android we could consider adding ARM64 configuration
mobile_build:
- name: android
type: Unity::VM
image: package-ci/win10:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: Android
base: win
architecture: armv7
# iOS modern builds are ARM64-only, thus no testing with armv7
- name: ios-arm64
type: Unity::VM::osx
image: package-ci/macos-13:v4
flavor: m1.mac
standalone: IOS
base: mac
architecture: arm64
mobile_test:
- name: android
type: Unity::mobile::shield
image: package-ci/win10:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: Android
base: win
architecture: armv7
- name: ios-arm64
type: Unity::mobile::iPhone
image: package-ci/macos-13-arm64:v4
flavor: m1.mac
larger_flavor: m1.mac
model: 13
standalone: IOS
base: mac
architecture: arm64
console_build:
- name: ps4
type: Unity::VM
image: package-ci/win10-ps4:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: PS4
# - name: ps5 --> SEE MTT-12118
# type: Unity::VM
# image: package-ci/win10-ps5:v4
# flavor: b1.large
# larger_flavor: b1.xlarge
# standalone: PS5
- name: switch
type: Unity::VM
image: package-ci/win10-switch:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: Switch
- name: GameCoreXboxOne
type: Unity::VM
image: package-ci/win10-xbox:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: GameCoreXboxOne
- name: GameCoreScarlett
type: Unity::VM
image: package-ci/win10-xbox:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: GameCoreScarlett
console_test:
- name: ps4
type: Unity::console::ps4
image: package-ci/win10-ps4:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: PS4
#- name: ps5 --> SEE MTT-12118
# type: Unity::console::ps5
# image: package-ci/win10-ps5:v4
# flavor: b1.large
# larger_flavor: b1.xlarge
# standalone: PS5
- name: switch
type: Unity::console::switch
image: package-ci/win10-switch:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: Switch
base: win
- name: GameCoreXboxOne
type: Unity::console::xbox
image: package-ci/win10-xbox:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: GameCoreXboxOne
- name: GameCoreScarlett
type: Unity::console::scarlett
image: package-ci/win10-xbox:v4
flavor: b1.large
larger_flavor: b1.xlarge
standalone: GameCoreScarlett
# EDITOR CONFIGURATIONS-------------------------------------------------------------------------------
# Editors to be used for testing. NGOv2.X official support started from 6000.0 editor
# TODO: When a new editor will be released it should be added to this list
validation_editors:
default:
- trunk
all:
- 6000.0
- 6000.2
- 6000.3
- 6000.4
- trunk
minimal:
- 6000.0
# Scripting backends used by Standalone RunTimeTests---------------------------------------------------
scripting_backends:
- mono
- il2cpp
# PROJECTS CONFIGURATIONS-------------------------------------------------------------------------------
# Projects within the repository that will be tested/build.
# The default project should be used for general validation, code coverage and other tests where choice of project should not matter (because we are interested in NGO package)
# has_tests --> describes if projects contains any tests to run.
projects:
default:
- name: testproject
path: testproject
has_tests: true
all:
- name: testproject
path: testproject
has_tests: true
- name: minimalproject
path: minimalproject
has_tests: false
# UNIFIED TEST RUNNER CONFIGURATIONS--------------------------------------------------------------------
# Shared settings for the UnifiedTestRunner
# Configures the number of times a failed test is retried before it is considered failed.
# Helps handle flaky tests
# Passed into --retry
num_test_retries: 1
# Number of seconds before a single test times out
# Passed into --timeout
test_timeout: 1800