-
Notifications
You must be signed in to change notification settings - Fork 459
Expand file tree
/
Copy pathproject.metafile
More file actions
193 lines (179 loc) · 7.89 KB
/
project.metafile
File metadata and controls
193 lines (179 loc) · 7.89 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
# 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)
# standalone --> Specifies the build target platform (e.g., StandaloneLinux64, Android, IOS)
# model --> Defines specific hardware model requirements (e.g., rtx2080, SE for iPhone SE)
# 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
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
flavor: b1.large
standalone: StandaloneLinux64
desktop:
- name: ubuntu
type: Unity::VM
image: package-ci/ubuntu-22.04:v4
flavor: b1.large
standalone: StandaloneLinux64
model: rtx2080
- name: win
type: Unity::VM
image: package-ci/win10:v4
flavor: b1.large
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
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
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
standalone: Android
base: win
architecture: armv7
- name: ios-arm64
type: Unity::mobile::iPhone
image: package-ci/macos-13-arm64:v4
flavor: m1.mac
model: SE
standalone: IOS
base: mac
architecture: arm64
console_build:
- name: ps4
type: Unity::VM
image: package-ci/win10-ps4:v4
flavor: b1.large
standalone: PS4
# - name: ps5 --> SEE MTT-12118
# type: Unity::VM
# image: package-ci/win10-ps5:v4
# flavor: b1.large
# standalone: PS5
- name: switch
type: Unity::VM
image: package-ci/win10-switch:v4
flavor: b1.large
standalone: Switch
- name: GameCoreXboxOne
type: Unity::VM
image: package-ci/win10-xbox:v4
flavor: b1.large
standalone: GameCoreXboxOne
- name: GameCoreScarlett
type: Unity::VM
image: package-ci/win10-xbox:v4
flavor: b1.large
standalone: GameCoreScarlett
console_test:
- name: ps4
type: Unity::console::ps4
image: package-ci/win10-ps4:v4
flavor: b1.large
standalone: PS4
#- name: ps5 --> SEE MTT-12118
# type: Unity::console::ps5
# image: package-ci/win10-ps5:v4
# flavor: b1.large
# standalone: PS5
- name: switch
type: Unity::console::switch
image: package-ci/win10-switch:v4
flavor: b1.large
standalone: Switch
base: win
- name: GameCoreXboxOne
type: Unity::console::xbox
image: package-ci/win10-xbox:v4
flavor: b1.large
standalone: GameCoreXboxOne
- name: GameCoreScarlett
type: Unity::console::scarlett
image: package-ci/win10-xbox:v4
flavor: b1.large
standalone: GameCoreScarlett
# EDITOR CONFIGURATIONS-------------------------------------------------------------------------------
# Editors to be used for testing. NGOv1.X official support started from 2021.3 editor
# TODO: When a new editor will be released it should be added to this list. Correct also if we will stop supporting one of the editors present here
validation_editors:
default:
- trunk
all:
- 2021.3
- 2022.3
- 6000.0
- 6000.1
- 6000.2
- trunk
minimal:
- 2021.3
# 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
- name: testproject-tools-integration
path: testproject-tools-integration
has_tests: true