-
Notifications
You must be signed in to change notification settings - Fork 459
Expand file tree
/
Copy pathproject-pack.yml
More file actions
45 lines (38 loc) · 2.63 KB
/
project-pack.yml
File metadata and controls
45 lines (38 loc) · 2.63 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
{% metadata_file .yamato/project.metafile %} # All configuration that is used to create different configurations (used in for loops) is taken from this file.
---
# DESCRIPTION--------------------------------------------------------------------------
# This job is responsible for packing a specific project. It generates package artifacts (.tgz) required for testing and publishing, ensuring all dependencies are properly bundled and validated before any test execution.
# The job itself doesn't test anything specific but rather it prepares project packages that will be consumed by other pipeline jobs.
# CONFIGURATION STRUCTURE--------------------------------------------------------------
# Jobs configurations are generated using nested loops through:
# 1. For all projects (testproject, minimalproject, testproject-tools-integration).
# 2. For all desktop platforms (Win, Ubuntu, Mac)
# TECHNICAL CONSIDERATIONS--------------------------------------------------------------------
# Job does not require Unity Editor in order to perform packing.
# In theory, we could just use one platform for packing projects (for example ubuntu) but in order to reduce confusion we are using same platform as the job utilizing project pack as dependency.
# QUALITY CONSIDERATIONS--------------------------------------------------------------------
# To see where this job is included (in trigger job definitions) look into _triggers.yml file
# TODO: Currently upm-ci is being used but in the future it will be replaced by upm-pvp. Additionally this would allow us to run PVP checks on projects
#--------------------------------------------------------------------------------------
{% for project in projects.all -%}
{% for platform in test_platforms.desktop -%}
project_pack_-_{{ project.name }}_{{ platform.name }}:
name: Project Pack - {{ project.name }} [{{ platform.name }}]
agent:
type: {{ platform.type }}
image: {{ platform.image }}
flavor: {{ platform.flavor }}
{% if platform.model %}
model: {{ platform.model }} # This is set only in platforms where we want non-default model to use (more information in project.metafile)
{% endif %}
commands:
- npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm # upm-ci is not preinstalled on the image so we need to download it
- upm-ci project pack --project-path {{ project.path }}
dependencies:
- .yamato/_run-all.yml#run_quick_checks # initial checks to perform fast validation of common errors
artifacts:
packages:
paths:
- "upm-ci~/packages/**/*"
{% endfor -%}
{% endfor -%}