-
Notifications
You must be signed in to change notification settings - Fork 437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: NGO CI update and rewrite #3193
Draft
michalChrobot
wants to merge
15
commits into
develop-2.0.0
Choose a base branch
from
NGO-CI-rewrite-for-develop-2.0.0
base: develop-2.0.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…oject-updated-dependencies
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains a rewrite of CI present for NGO package. Below there is an overview of all changes, this is still work in progress since not all of the tests are passing. Worth noting is that there are quite a few comments added in each file explaining what it does exactly, and why, so the PR description will be more about higher level stuff.
After consulting with @NoelStephensUnity the conclusion was that NGO is not using Multiprocess tests so those were removed.
Those were removed since the release process changed and currently we use jobs present in wrench folder for package publishing and validation (described at the bottom of this summary together with other wrench jobs to showcase additional tests that are part of this CI)
This definition contained 2 trigger jobs.
First one was performing updated-dependencies-tests (which means that it was updating all package dependencies to the latest ones and running package tests). Currently we also plan to integrate renovate bot into this repository which will automatically detect dependencies that can be updated, create a PR with the update and package tests will run on it. In essence the difference is that Renovate will perform dependency updates and tests "one at a time" instead of all at the same time (worth noting that the test itself won't update the dependency but the bot will) but it should allow us to constantly use the latest dependencies so I would argue that this job won't be that necessary.
The second was a job using izon which is now "end-of-life" (same think with Badges trigger in .yamato/triggers) so there should be a discussion what we want to do about badges (for generation of which izon is used)
This file was rewritten in bigger part, the points to note are the following:
Separate package-pack definition file was added. It's equivalent to wrench/package-pack-jobs and it packs the package and performs PVP checks on it.
This definition was unified with the other in a sense that all machine definitions are present in project.metafile. Additional job of packing minimalproject with dependency of [email protected] (from old project.metafile) was removed since it would be out of date and in my understanding (as per previously mentioned Renovate bot) we should be able to keep latest dependency in projects (but I'm open to discussion if I'm wrong and this shouldn't be removed)
This was minimally modified, for example the test will run only on default project (since we are testing package so there should be no difference of what project is used as a context). This is performed on all desktop platforms (all where editor can be used)
Minimally rewritten similarly to package-tests. Ii will execute project tests for all projects that are marked with has_tests=true
Modified in a way that it will run standards check on all projects (instead only on the first one). Here we mostly care about standards in the package which will be checked in any of projects but it's also nice to know if other projects are conforming to the standards
Not much changed here. This job runs package test with code coverage measurement enabled. It's automatically triggered once per week by trigger jobs definition. The results are not shared internally since it's not supported for public repositories.
Also here the functionality stayed mostly the same. It will perform build phase for WebGL and no tests since it's not really feasible right now to run server for such build.
The definition (beside some different writing) stayed mostly the same and those jobs are created for each supported editor for each desktop platform.
The definition (beside some different writing) stayed mostly the same and those jobs are created for each supported editor for each desktop platform.
This is a completely new job since there were no console tests set up before for NGO package
This is a completely new job since there were no performance tests set up before for NGO package. Worth noting is the fact that currently NGO doesn't have any performance tests in place (so this job will always fail with "no tests selected" error) but it's still nice to have this job for future when there will be performance tests. Because of this, this job will not be triggered by any trigger jobs.
It was modified in a sense that it runs jobs in current configuration. Worth noting is that there are jobs to run all given tests (for example mobile) or all but while only using default editor (trunk). This is useful for triggers defined in .yamato/_triggers.yml
First of all "Badges Tests Trigger" was removed because izon is end-of-life as mentioned also in .yamato/project-updated-dependencies-test.yml.
Pull Request Trigger was modified to run only on valid branches (there is no master branch) . For now it will run project-standards, preview-a-p-v, api-validation-jobs and all package and project tests.
Run Multiprocess Tests trigger was removed since there are no multiprocess jobs anymore
[Nightly] Run All Tests was modified to run same subset as pull_request_trigger with addition of mobile/desktop/console tests and webgl builds while running on trunk (default editor)
[Weekly] Run All Tests was modified to run same subset as develop_nightly but runs per all supported editors as well as executes code coverage test and runs project standards per project
Those jobs were created before this PR but I will summarize those just to have a full overview of jobs possible to use. All of those are present under .yamato/wrench folder: