Skip to content

Commit 03ea6e6

Browse files
committed
Merge branch 'develop-2.0.0' into chore/remove_feature_requests
2 parents b7c4ea6 + b5b99f8 commit 03ea6e6

File tree

468 files changed

+22264
-7490
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

468 files changed

+22264
-7490
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ AssemblyInfo.cs @NoelStephensUnity @EmandM @Unity-Technologies/netcode-qa
1010
.github/ @NoelStephensUnity @EmandM @Unity-Technologies/netcode-qa
1111
.yamato/ @NoelStephensUnity @EmandM @Unity-Technologies/netcode-qa
1212
com.unity.netcode.gameobjects/Documentation*/ @jabbacakes
13+
com.unity.netcode.gameobjects/Runtime/Transports/UTP/ @Unity-Technologies/multiplayer-workflows

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Bug report
33
about: Create a report to help us improve
44
title: ''
5-
labels: stat:awaiting triage, type:bug
5+
labels: stat:awaiting-triage, stat:reply-needed, type:bug
66
assignees: ''
77

88
---
@@ -40,4 +40,4 @@ If applicable, add screenshots to help explain your problem.
4040

4141
### Additional Context
4242

43-
Add any other context about the problem here. Logs, code snippets would be useful here but please also consider attaching a minimal Unity project that reproduces the issue.
43+
Add any other context about the problem here. Logs, code snippets would be useful here but please also consider attaching a minimal Unity project that reproduces the issue.

.github/workflows/mark-stale-issue.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
issues: write
1919

2020
steps:
21-
- uses: actions/stale@v9
21+
- uses: actions/stale@v10
2222
with:
2323
# Only mark issues (not PRs) as stale
2424
any-of-labels: 'stat:awaiting-response'

.github/workflows/pr-description-validation.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,29 @@ jobs:
2121
runs-on: ubuntu-latest
2222
steps:
2323
- name: Checkout code
24-
uses: actions/checkout@v5
24+
uses: actions/checkout@v6
2525

2626
- name: Check PR description
27-
uses: actions/github-script@v7
27+
uses: actions/github-script@v8
2828
with:
2929
script: |
3030
const pr = context.payload.pull_request;
3131
const body = pr.body || '';
32+
33+
// List of users to skip description validation
34+
// This should be automations where we don't care that much about the description format
35+
const skipUsersPrefixes = [
36+
'unity-renovate',
37+
'svc-'
38+
];
39+
40+
// If PR author is in the skip list, exit early
41+
const author = pr.user.login;
42+
console.log(`PR author: ${author}`);
43+
if (skipUsersPrefixes.some(prefix => author.startsWith(prefix))) {
44+
console.log(`Skipping PR description check for user: ${author}`);
45+
return;
46+
}
3247
3348
// List of mandatory PR sections
3449
const requiredSections = [
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# GitHub Actions workflow to monitor Yamato CI job state on pull requests
2+
# We are using https://cli.github.com/manual/gh_pr_checks
3+
# The aim is to ensure that conditionally triggered Yamato jobs are completed successfully before allowing merges
4+
5+
# This job will be required in branch protection rules for develop, develop-2.0.0, and release/* branches. It's only goal will be to ensure that Yamato jobs are completed successfully before allowing Pr to merge.
6+
# Note that conditional jobs will have 30s to show which is always the cas since they are showing up as soon as in distribution stage.
7+
8+
name: Yamato PR Supervisor
9+
10+
on:
11+
pull_request:
12+
types: [opened, synchronize, reopened]
13+
branches:
14+
- develop
15+
- develop-2.0.0
16+
- release/*
17+
18+
concurrency:
19+
group: pr-${{ github.event.pull_request.number }}
20+
cancel-in-progress: true
21+
22+
jobs:
23+
yamato-supervisor:
24+
runs-on: ubuntu-latest
25+
timeout-minutes: 720
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v6
29+
30+
- name: Wait and Verify Yamato Job Status
31+
env:
32+
GH_TOKEN: ${{ secrets.GH_TOKEN }}
33+
PR_NUMBER: ${{ github.event.pull_request.number }}
34+
run: |
35+
set -e
36+
37+
38+
MAX_ATTEMPTS=$((12*60))
39+
INTERVAL=60
40+
41+
sleep $INTERVAL
42+
for ((i=1;i<=MAX_ATTEMPTS;i++)); do
43+
echo "Polling PR checks (attempt $i/$MAX_ATTEMPTS)..."
44+
45+
# We want to watch for pending checks beside this check
46+
checks=$(gh pr checks $PR_NUMBER --json name,state --jq '[ .[] | select(.name != "yamato-supervisor") ]')
47+
48+
pending=$(echo "$checks" | jq '[.[] | select(.state == "PENDING")] | length')
49+
skipping=$(echo "$checks" | jq '[.[] | select(.state == "SKIPPED")] | length')
50+
passed=$(echo "$checks" | jq '[.[] | select(.state == "SUCCESS")] | length')
51+
failed=$(echo "$checks" | jq '[.[] | select(.state == "FAILURE")] | length')
52+
53+
echo "Pending checks: $pending, Skipping checks: $skipping", Passed checks: $passed, Failed checks: $failed
54+
55+
if [[ "$failed" -gt 0 ]]; then
56+
echo "A check has failed! Failing fast."
57+
exit 1
58+
fi
59+
60+
if [[ "$pending" -eq 0 ]] && [[ "$passed" -gt 0 ]]; then
61+
echo "All non-supervisor checks are completed!"
62+
exit 0
63+
fi
64+
65+
sleep $INTERVAL
66+
done

.github/workflows/qa-reviewer-assignment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
steps:
2424

2525
- name: 'Assign QA Team'
26-
uses: actions/github-script@v7
26+
uses: actions/github-script@v8
2727
with:
2828
github-token: ${{ secrets.GH_TOKEN }}
2929
script: |

.pr_agent.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[github_app]
2+
pr_commands = []

.yamato/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
# Netcode for GameObjects CI Documentation
22

33
## Overview
4-
This document provides an overview of the Continuous Integration (CI) implementation for Netcode for GameObjects.
4+
This document provides an overview of the Continuous Integration (CI) implementation for Netcode for GameObjects.
55
Specifics of each test are described within related files (for example .yamato/package-tests.yml) and this file present high level overview related to overall implementation.
66

77
## Test Configurations
88
CI related files are present inside .yamato/ folder and we can distinguish specific tests
99

1010
### Helper jobs
1111
- `.yamato/package-pack.yml` responsible for generating package artifacts (.tgz) required for testing and publishing.
12-
- `.yamato/project-pack.yml` responsible for generating package artifacts (.tgz) required for testing and publishing. This packs all packages of a given project.
1312
- `.yamato/_run-all.yml` responsible for grouping tests into groups for easier management (for example "all console tests").
1413
- `.yamato/_triggers.yml` responsible for defining triggers (PR, nightly, weekly etc.) and defining which tests to run.
1514
- `disable-burst-if-requested.py` responsible for helping to disable burst if needed.
@@ -77,4 +76,4 @@ Currently, the CI implementation supports the following platforms:
7776

7877
## Design Considerations
7978
In theory, we could manually write jobs for every configuration. However, this approach would be more error-prone, especially when modifications or fixes are needed, as it would require keeping track of all configurations.
80-
The downside of our current approach is that it can sometimes impact readability due to the use of nested if and for statements.
79+
The downside of our current approach is that it can sometimes impact readability due to the use of nested if and for statements.

.yamato/_run-all.yml

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
run_quick_checks:
1616
name: Run Quick Initial Checks
1717
dependencies:
18-
- .yamato/package-pack.yml#package_pack_-_ngo_ubuntu
19-
- .yamato/project-standards.yml#standards_ubuntu_testproject_trunk
20-
# Run API validation to early-detect all new APIs that would force us to release new minor version of the package. Note that for this to work the package version in package.json must correspond to "actual package state" which means that it should be higher than last released version
21-
- .yamato/vetting-test.yml#vetting_test
18+
# Ensure the code is running to our current standards
19+
- .yamato/project-standards.yml#standards_ubuntu_testproject_{{ validation_editors.default }}
20+
# This is needed for most of the jobs to execute tests + it runs xray PVP checks (all fast checks)
21+
- .yamato/package-pack.yml#package_pack_-_ngo_win
2222

2323

2424
# Runs all package tests
@@ -253,3 +253,42 @@ run_all_project_tests_console_standalone_6000:
253253
- .yamato/console-standalone-test.yml#console_standalone_test_{{ project.name }}_{{ platform.name }}_6000.0
254254
{% endfor -%}
255255
{% endfor -%}
256+
257+
258+
# Runs all CMB service tests
259+
run_all_project_tests_cmb_service:
260+
name: Run All CMB Service Tests
261+
dependencies:
262+
{% for project in projects.default -%}
263+
{% for platform in test_platforms.default -%}
264+
{% for editor in validation_editors.all -%}
265+
{% for backend in scripting_backends -%}
266+
- .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_{{ editor }}
267+
{% endfor -%}
268+
{% endfor -%}
269+
{% endfor -%}
270+
{% endfor -%}
271+
272+
# Runs all CMB service tests on trunk editor
273+
run_all_project_tests_cmb_service_trunk:
274+
name: Run All CMB Service Tests [Trunk only]
275+
dependencies:
276+
{% for project in projects.default -%}
277+
{% for platform in test_platforms.default -%}
278+
{% for backend in scripting_backends -%}
279+
- .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_trunk
280+
{% endfor -%}
281+
{% endfor -%}
282+
{% endfor -%}
283+
284+
# Runs all CMB service tests on mimimum supported editor (6000.0 in case of NGOv2.X)
285+
run_all_project_tests_cmb_service_6000:
286+
name: Run All CMB Service Tests [6000.0]
287+
dependencies:
288+
{% for project in projects.default -%}
289+
{% for platform in test_platforms.default -%}
290+
{% for backend in scripting_backends -%}
291+
- .yamato/cmb-service-standalone-tests.yml#cmb_service_standalone_test_{{ project.name }}_{{ platform.name }}_{{ backend }}_6000.0
292+
{% endfor -%}
293+
{% endfor -%}
294+
{% endfor -%}

0 commit comments

Comments
 (0)