Skip to content

Conversation

@michalChrobot
Copy link
Collaborator

This is a backport of #3557. Notice that only projects that we can build with NGOv1.X are included

Backport

#3557

michalChrobot added a commit that referenced this pull request Jul 30, 2025
## What
This PR is an initial introduction of Yamato jobs which build our
samples and the result can be found in the artifacts of the job under
**players**.
Currently there are 3 samples that we are able to build (I'm open to add
more)

The idea here is to run the job from the branch from which we want to
test packages (let's say `release/1.4.1`) and the samples will be build
with their manifest pointing to local packages from that branch.
The steps are included here are:
- cloning the repo 
- modifying project manifest. **If the Tools dependency is present I'm
ensuring it's the latest one**
- Validating Yamato variable inputs (described at the end of this
section)
- Connecting the project to use Services (needed in NGO case)
- Disabling or Enabling Burst compilation
- Copying Builder and assembly definition scripts to the project so we
can execute them

Hopefully the scripts are annotated with enough comments that entire
setup is clear. Note that when executing the job you have an option to
modify Yamato variables to set
- Editor version which you want to use for the build
- Decide if you want burst compilation to be enabled or disabled
- Choose the platform for which you want to build (for now available
options are macOS, Win64 and Android)
- Which scripting backend you want to use (il2cpp or mono)

When the job finishes running you can inspect the job artifacts to get
the build (players path) or detailed build logs in case of failure or
the build not appearing (logs path)

## WHY
The reason for this job is to facilitate/automate Playtesting and
improving developers ability to easily test their changes. This PR will
help with:

1. When building bigger samples it can somehow take a lot of time
(depending on computer resources) and for Playtesting we usually want to
have several combinations (windows, mac, android etc) which makes our
machine busy for sometimes several hours during which everything is slow
and our work is affected. After this PR it will be possible to **use our
CI resources to build the project which will allow us to spend our time
on some other work during that time**
4. This will create **more standardized way** of making builds which
will hopefully ensure that **no steps are missed** when creating the
build (for example connecting to services in case of NGO)
5. This may help our developers to validate their changes by
facilitating build making process

The main desire behind those changes is the scenario when you trigger
appropriate builds when finishing the day and by next morning you have
them ready so you can start playtesting right away

## Need to know/Additional considerations
- It is possible that executing such job will take **MORE TIME** than
building the sample on your machine since you need to add the
distribution time
- Keep in mind that as for now the job uses windows machine to make the
builds and I'm planning to add mac version/more platforms in another
pass but that was my initial setup to not overcomplicate it too much.
Note that because of this when opening macOS build you need to follow
some additional steps to open the project (namely **xattr -c
<path/to/application.app>** and **chmod -R +x
<path/to/application.app>**). Also you can't build mac with il2cpp (only
mono)
- Some parameters I included as secrets so are not publicly visible

## Backport

#3558
@michalChrobot
Copy link
Collaborator Author

Quick note that I will do the second pass soon where I will make sure that

  • Latest Tools package is used
  • Naming is more descriptive
  • ...

@michalChrobot michalChrobot merged commit 2939f8b into develop Jul 30, 2025
26 checks passed
@michalChrobot michalChrobot deleted the automated-project-builders-backport branch July 30, 2025 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants