From b1e07e0bdd0150449d80dfc73ee483fb1064d791 Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Wed, 27 Aug 2025 14:09:56 +0200 Subject: [PATCH 1/9] Updated pr template and verification job --- .github/pull_request_template.md | 14 ++++++++------ .github/workflows/pr-verification.yml | 18 +++++++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 25a35e6cd0..8d12ec70c7 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,14 +4,14 @@ Replace this block with what this PR does and why. Describe what you'd like revi ) ### Jira ticket -_Link to related jira ticket ([Use the smart commits](https://support.atlassian.com/bitbucket-cloud/docs/use-smart-commits/))_ +_Link to related jira ticket ([Use the smart commits](https://support.atlassian.com/bitbucket-cloud/docs/use-smart-commits/)). Short version (e.g. DOTS-123) also works and gets auto-linked_ ### Changelog [//]: # (updated with all public facing changes - API changes, UI/UX changes, behaviour changes, bug fixes. Remove if not relevant.) - Added: The package whose Changelog should be added to should be in the header. Delete the changelog section entirely if it's not needed. - Fixed: If you update multiple packages, create a new section with a new header for the other package. -- Removed/Deprecated/Changed: Each bullet should be prefixed with Added, Fixed, Removed, Deprecated, or Changed to indicate where the entry should go +- Removed/Deprecated/Changed: Each bullet should be prefixed with Added, Fixed, Removed, Deprecated, or Changed to indicate where the entry should go. + ### Functional Testing [//]: # (If checked, List manual tests that have been performed.) _Manual testing :_ @@ -51,11 +53,11 @@ _Does the change require QA team to:_ - [ ] `Review automated tests`? - [ ] `Execute manual tests`? -If any boxes above are checked, please add QA as a PR reviewer. +If any boxes above are checked the QA team will be automatically added as a PR reviewer. -## Backport +## Backports [//]: # ( This section is REQUIRED and should link to the PR that targets other NGO version which is either develop or develop-2.0.0 branch Add the following to the PR title: "\[Backport\] ..." If this is not needed, for example feature specific to NGOv2.X, then just mention this fact. -) \ No newline at end of file +) diff --git a/.github/workflows/pr-verification.yml b/.github/workflows/pr-verification.yml index 866a1aa344..f48a4c08d4 100644 --- a/.github/workflows/pr-verification.yml +++ b/.github/workflows/pr-verification.yml @@ -1,4 +1,4 @@ -# This workflow is designed to verify that the pull request description contains a required sections that are important from quality perspective. +# This workflow is designed to verify that the pull request description contains a required sections that are important from quality perspective. # ## Backport section is important as a reminder to account for backports for anyone that works with NGO repository (to 1.X or 2.X branches respectively). # ## Testing & QA section is important to ensure that the PR has appropriate testing coverage and is important when QA will evaluate PRs before Playtesting for the release. # ## Documentation section is important to ensure that the documentation is updated with the changes made in the PR. @@ -18,7 +18,7 @@ on: jobs: pr-verification: - runs-on: ubuntu-latest + runs-on: unity-linux-runner steps: - name: Checkout code uses: actions/checkout@v5 @@ -33,16 +33,20 @@ jobs: // List of mandatory PR sections const requiredSections = [ { - header: '## Backport', - description: 'PR description must include a "## Backport" section. Please add this section and provide information about this PR backport to develop or develop-2.0.0 branch respectively or explain why backport is not needed.' + header: '## Backports', + description: 'PR description must include a "## Backports" section. Please add this section and provide information about this PR backport to develop or develop-2.0.0 branch respectively or explain why backport is not needed.' }, { - header: '## Testing & QA', - description: 'PR description must include a "## Testing & QA" section. Please add this section and provide information about the testing performed for this PR. It can range from adding unit tests to full samples and is needed from QA side to analyze PRs while Playtesting for the release.' + header: '## Testing & QA (How your changes can be verified during release Playtest)', + description: 'PR description must include a "## Testing & QA (How your changes can be verified during release Playtest)" section. Please add this section and provide information about the testing performed for this PR. It can range from adding unit tests to full samples and is needed from QA side to analyze PRs while Playtesting for the release.' }, { header: '## Documentation', description: 'PR description must include a "## Documentation" section. Please add this section and provide information about the documentation changes made in this PR. It is important to keep the documentation up to date with the code changes.' + }, + { + header: '## Jira ticket', + description: 'PR description must include a "## Jira ticket" section. Please add this section and provide a link to the Jira ticket that corresponds to this PR. General rule should be that if the PR takes you more then a day of work it should have Jira ticket. Otherwise you can always write "N/A" in this section.' } ]; @@ -59,4 +63,4 @@ jobs: message += '\n\nPlease add them to your PR description.'; core.setFailed(message); - } \ No newline at end of file + } From 6dd0e6d68a5510a1ddee3fe3dba0a817767e851e Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Wed, 27 Aug 2025 14:10:25 +0200 Subject: [PATCH 2/9] ubdated runners to use recommended unity ones --- .github/workflows/assignee-management.yaml | 4 ++-- .github/workflows/autoupdate.yaml | 2 +- .github/workflows/conventional-pr.yml | 2 +- .github/workflows/conversation-labels.yaml | 2 +- .github/workflows/mark-stale-issue.yaml | 2 +- .github/workflows/remove-labels-on-issue-close.yaml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/assignee-management.yaml b/.github/workflows/assignee-management.yaml index b330a01191..28df16b706 100644 --- a/.github/workflows/assignee-management.yaml +++ b/.github/workflows/assignee-management.yaml @@ -22,7 +22,7 @@ jobs: handle_assignment: name: Handle Issue Assignment Changes if: ${{ !github.event.issue.pull_request && github.event.issue.state == 'open' }} - runs-on: ubuntu-latest + runs-on: unity-linux-runner permissions: issues: write @@ -54,7 +54,7 @@ jobs: handle_investigating_label: name: Handle Investigating Label Addition if: ${{ github.event.action == 'labeled' && github.event.label.name == 'stat:Investigating' && !github.event.issue.pull_request && github.event.issue.state == 'open' }} - runs-on: ubuntu-latest + runs-on: unity-linux-runner permissions: issues: write diff --git a/.github/workflows/autoupdate.yaml b/.github/workflows/autoupdate.yaml index 764b52b373..6e842c7f13 100644 --- a/.github/workflows/autoupdate.yaml +++ b/.github/workflows/autoupdate.yaml @@ -7,7 +7,7 @@ on: jobs: autoupdate: name: auto-update - runs-on: ubuntu-latest + runs-on: unity-linux-runner steps: - uses: docker://chinthakagodawita/autoupdate-action:v1 env: diff --git a/.github/workflows/conventional-pr.yml b/.github/workflows/conventional-pr.yml index 30274254e2..a798187ab4 100644 --- a/.github/workflows/conventional-pr.yml +++ b/.github/workflows/conventional-pr.yml @@ -11,7 +11,7 @@ jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on - runs-on: ubuntu-latest + runs-on: unity-linux-runner # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/.github/workflows/conversation-labels.yaml b/.github/workflows/conversation-labels.yaml index 0297464bc5..0e59b3fa16 100644 --- a/.github/workflows/conversation-labels.yaml +++ b/.github/workflows/conversation-labels.yaml @@ -22,7 +22,7 @@ jobs: conversation_labels: name: Calculate and update conversation labels of the issue if: ${{ !github.event.issue.pull_request && github.event.issue.state == 'open' }} - runs-on: ubuntu-latest + runs-on: unity-linux-runner permissions: issues: write diff --git a/.github/workflows/mark-stale-issue.yaml b/.github/workflows/mark-stale-issue.yaml index 2e77192183..3ae7a58d8d 100644 --- a/.github/workflows/mark-stale-issue.yaml +++ b/.github/workflows/mark-stale-issue.yaml @@ -13,7 +13,7 @@ on: jobs: stale: - runs-on: ubuntu-latest + runs-on: unity-linux-runner permissions: issues: write diff --git a/.github/workflows/remove-labels-on-issue-close.yaml b/.github/workflows/remove-labels-on-issue-close.yaml index 2ac5145e16..3de88cf6d7 100644 --- a/.github/workflows/remove-labels-on-issue-close.yaml +++ b/.github/workflows/remove-labels-on-issue-close.yaml @@ -10,7 +10,7 @@ jobs: remove_labels: name: Calculate and remove issue labels if: ${{ !github.event.issue.pull_request }} # This is needed to distinguish from PRs (which we don't want to affect) - runs-on: ubuntu-latest + runs-on: unity-linux-runner permissions: issues: write From 11387777992e5592ff1729ebfc133febabe242e3 Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Wed, 27 Aug 2025 14:10:42 +0200 Subject: [PATCH 3/9] automatic QA assigning --- .github/workflows/qa-reviewer-assignment.yml | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/qa-reviewer-assignment.yml diff --git a/.github/workflows/qa-reviewer-assignment.yml b/.github/workflows/qa-reviewer-assignment.yml new file mode 100644 index 0000000000..cd11f8f3c7 --- /dev/null +++ b/.github/workflows/qa-reviewer-assignment.yml @@ -0,0 +1,35 @@ +# This workflow depend on the content of .github/pull_request_template.md file, which should contain the required sections that the script checks for +# This also works in parallel with .github/workflows/pr-verification.yml which validates PR format +# In contrast to .github/workflows/pr-verification.yml, this workflow is conditional and aims to ease the process of requesting QA review by automatically assigning the QA team whenever a checkbox is marked + +# In case that the given checkboxes are marked the script will automatically add netcode-qa team as a reviewer. + +name: 'Assign QA Reviewer' + +on: + pull_request: + types: [opened, edited, synchronize, reopened] + +jobs: + assign-qa: + # This job only runs if the checkbox in the PR description exist and is checked. + if: > + contains(github.event.pull_request.body, '- [x] `Review automated tests`') || + contains(github.event.pull_request.body, '- [x] `Execute manual tests`') + runs-on: unity-linux-runner + + + steps: + + - name: 'Assign QA Team' + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GH_COM_TOKEN }} + script: | + github.rest.pulls.requestReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number, + team_reviewers: ['netcode-qa'] + }); + console.log('Assigned netcode-qa for review.'); From 61746a556723dac3f52dd75813fa046e0682428b Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Wed, 27 Aug 2025 14:18:16 +0200 Subject: [PATCH 4/9] updated secret name --- .github/workflows/qa-reviewer-assignment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qa-reviewer-assignment.yml b/.github/workflows/qa-reviewer-assignment.yml index cd11f8f3c7..850ba1043e 100644 --- a/.github/workflows/qa-reviewer-assignment.yml +++ b/.github/workflows/qa-reviewer-assignment.yml @@ -24,7 +24,7 @@ jobs: - name: 'Assign QA Team' uses: actions/github-script@v7 with: - github-token: ${{ secrets.GH_COM_TOKEN }} + github-token: ${{ secrets.GH_TOKEN }} script: | github.rest.pulls.requestReviewers({ owner: context.repo.owner, From 130aa9955bcc64b5b855da58c3fedd189df8fc2e Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Wed, 27 Aug 2025 14:26:12 +0200 Subject: [PATCH 5/9] Added one more option about QA request --- .github/pull_request_template.md | 1 + .github/workflows/qa-reviewer-assignment.yml | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8d12ec70c7..d869958019 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -52,6 +52,7 @@ _Does the change require QA team to:_ - [ ] `Review automated tests`? - [ ] `Execute manual tests`? +- [ ] `Provide feedback about the PR`? If any boxes above are checked the QA team will be automatically added as a PR reviewer. diff --git a/.github/workflows/qa-reviewer-assignment.yml b/.github/workflows/qa-reviewer-assignment.yml index 850ba1043e..4509e07aa5 100644 --- a/.github/workflows/qa-reviewer-assignment.yml +++ b/.github/workflows/qa-reviewer-assignment.yml @@ -15,7 +15,8 @@ jobs: # This job only runs if the checkbox in the PR description exist and is checked. if: > contains(github.event.pull_request.body, '- [x] `Review automated tests`') || - contains(github.event.pull_request.body, '- [x] `Execute manual tests`') + contains(github.event.pull_request.body, '- [x] `Execute manual tests`') || + contains(github.event.pull_request.body, '- [x] `Provide feedback about the PR`') runs-on: unity-linux-runner From 17bc0e29ccac3c90064494f41901d6f0ad221a97 Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Wed, 27 Aug 2025 15:34:33 +0200 Subject: [PATCH 6/9] section test reduction --- .github/workflows/pr-verification.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-verification.yml b/.github/workflows/pr-verification.yml index f48a4c08d4..b8d16ea5d8 100644 --- a/.github/workflows/pr-verification.yml +++ b/.github/workflows/pr-verification.yml @@ -37,8 +37,8 @@ jobs: description: 'PR description must include a "## Backports" section. Please add this section and provide information about this PR backport to develop or develop-2.0.0 branch respectively or explain why backport is not needed.' }, { - header: '## Testing & QA (How your changes can be verified during release Playtest)', - description: 'PR description must include a "## Testing & QA (How your changes can be verified during release Playtest)" section. Please add this section and provide information about the testing performed for this PR. It can range from adding unit tests to full samples and is needed from QA side to analyze PRs while Playtesting for the release.' + header: '## Testing & QA', + description: 'PR description must include a "## Testing & QA" section. Please add this section and provide information about the testing performed for this PR. It can range from adding unit tests to full samples and is needed from QA side to analyze PRs while Playtesting for the release.' }, { header: '## Documentation', From 83b9530e6de837dd83758ac3784bb824f81bc8de Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Thu, 28 Aug 2025 16:41:37 +0200 Subject: [PATCH 7/9] Renamed in the same was as in N4E --- .../{pr-verification.yml => pr-description-validation.yml} | 4 ++-- .github/workflows/qa-reviewer-assignment.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename .github/workflows/{pr-verification.yml => pr-description-validation.yml} (98%) diff --git a/.github/workflows/pr-verification.yml b/.github/workflows/pr-description-validation.yml similarity index 98% rename from .github/workflows/pr-verification.yml rename to .github/workflows/pr-description-validation.yml index b8d16ea5d8..06ff1e8e27 100644 --- a/.github/workflows/pr-verification.yml +++ b/.github/workflows/pr-description-validation.yml @@ -6,7 +6,7 @@ # If any of the sections is missing, the workflow will fail and block the PR from merging, prompting the developer to add those sections to the PR description. # The workflow is configured to run when PR is created as well as when it is edited which also counts simple description edits. -name: "NGO - PR Verification" +name: "NGO - PR description validation" on: pull_request: @@ -17,7 +17,7 @@ on: - release/* jobs: - pr-verification: + pr-description-validation: runs-on: unity-linux-runner steps: - name: Checkout code diff --git a/.github/workflows/qa-reviewer-assignment.yml b/.github/workflows/qa-reviewer-assignment.yml index 4509e07aa5..08eeabe72b 100644 --- a/.github/workflows/qa-reviewer-assignment.yml +++ b/.github/workflows/qa-reviewer-assignment.yml @@ -1,6 +1,6 @@ # This workflow depend on the content of .github/pull_request_template.md file, which should contain the required sections that the script checks for -# This also works in parallel with .github/workflows/pr-verification.yml which validates PR format -# In contrast to .github/workflows/pr-verification.yml, this workflow is conditional and aims to ease the process of requesting QA review by automatically assigning the QA team whenever a checkbox is marked +# This also works in parallel with .github/workflows/pr-description-validation.yml which validates PR format +# In contrast to .github/workflows/pr-description-validation.yml, this workflow is conditional and aims to ease the process of requesting QA review by automatically assigning the QA team whenever a checkbox is marked # In case that the given checkboxes are marked the script will automatically add netcode-qa team as a reviewer. From 01493ab2509d2a97ef75ec1ba02edbf43412fa0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Chrobot?= <124174716+michalChrobot@users.noreply.github.com> Date: Thu, 28 Aug 2025 16:42:58 +0200 Subject: [PATCH 8/9] Update .github/pull_request_template.md Co-authored-by: Emma --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index d869958019..1af44ed7da 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,7 +4,7 @@ Replace this block with what this PR does and why. Describe what you'd like revi ) ### Jira ticket -_Link to related jira ticket ([Use the smart commits](https://support.atlassian.com/bitbucket-cloud/docs/use-smart-commits/)). Short version (e.g. DOTS-123) also works and gets auto-linked_ +_Link to related jira ticket ([Use the smart commits](https://support.atlassian.com/bitbucket-cloud/docs/use-smart-commits/)). Short version (e.g. MTT-123) also works and gets auto-linked_ ### Changelog [//]: # (updated with all public facing changes - API changes, UI/UX changes, behaviour changes, bug fixes. Remove if not relevant.) From 7268ed93face99d24e1947f993c58a0f8f5e3b43 Mon Sep 17 00:00:00 2001 From: michal-chrobot Date: Thu, 28 Aug 2025 16:48:36 +0200 Subject: [PATCH 9/9] reverted image to ubuntu-latest --- .github/workflows/assignee-management.yaml | 4 ++-- .github/workflows/autoupdate.yaml | 2 +- .github/workflows/conventional-pr.yml | 2 +- .github/workflows/conversation-labels.yaml | 2 +- .github/workflows/mark-stale-issue.yaml | 2 +- .github/workflows/pr-description-validation.yml | 2 +- .github/workflows/qa-reviewer-assignment.yml | 2 +- .github/workflows/remove-labels-on-issue-close.yaml | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/assignee-management.yaml b/.github/workflows/assignee-management.yaml index 28df16b706..b330a01191 100644 --- a/.github/workflows/assignee-management.yaml +++ b/.github/workflows/assignee-management.yaml @@ -22,7 +22,7 @@ jobs: handle_assignment: name: Handle Issue Assignment Changes if: ${{ !github.event.issue.pull_request && github.event.issue.state == 'open' }} - runs-on: unity-linux-runner + runs-on: ubuntu-latest permissions: issues: write @@ -54,7 +54,7 @@ jobs: handle_investigating_label: name: Handle Investigating Label Addition if: ${{ github.event.action == 'labeled' && github.event.label.name == 'stat:Investigating' && !github.event.issue.pull_request && github.event.issue.state == 'open' }} - runs-on: unity-linux-runner + runs-on: ubuntu-latest permissions: issues: write diff --git a/.github/workflows/autoupdate.yaml b/.github/workflows/autoupdate.yaml index 6e842c7f13..764b52b373 100644 --- a/.github/workflows/autoupdate.yaml +++ b/.github/workflows/autoupdate.yaml @@ -7,7 +7,7 @@ on: jobs: autoupdate: name: auto-update - runs-on: unity-linux-runner + runs-on: ubuntu-latest steps: - uses: docker://chinthakagodawita/autoupdate-action:v1 env: diff --git a/.github/workflows/conventional-pr.yml b/.github/workflows/conventional-pr.yml index a798187ab4..30274254e2 100644 --- a/.github/workflows/conventional-pr.yml +++ b/.github/workflows/conventional-pr.yml @@ -11,7 +11,7 @@ jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on - runs-on: unity-linux-runner + runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/.github/workflows/conversation-labels.yaml b/.github/workflows/conversation-labels.yaml index 0e59b3fa16..0297464bc5 100644 --- a/.github/workflows/conversation-labels.yaml +++ b/.github/workflows/conversation-labels.yaml @@ -22,7 +22,7 @@ jobs: conversation_labels: name: Calculate and update conversation labels of the issue if: ${{ !github.event.issue.pull_request && github.event.issue.state == 'open' }} - runs-on: unity-linux-runner + runs-on: ubuntu-latest permissions: issues: write diff --git a/.github/workflows/mark-stale-issue.yaml b/.github/workflows/mark-stale-issue.yaml index 3ae7a58d8d..2e77192183 100644 --- a/.github/workflows/mark-stale-issue.yaml +++ b/.github/workflows/mark-stale-issue.yaml @@ -13,7 +13,7 @@ on: jobs: stale: - runs-on: unity-linux-runner + runs-on: ubuntu-latest permissions: issues: write diff --git a/.github/workflows/pr-description-validation.yml b/.github/workflows/pr-description-validation.yml index 06ff1e8e27..f5d0a40248 100644 --- a/.github/workflows/pr-description-validation.yml +++ b/.github/workflows/pr-description-validation.yml @@ -18,7 +18,7 @@ on: jobs: pr-description-validation: - runs-on: unity-linux-runner + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v5 diff --git a/.github/workflows/qa-reviewer-assignment.yml b/.github/workflows/qa-reviewer-assignment.yml index 08eeabe72b..8057857a4a 100644 --- a/.github/workflows/qa-reviewer-assignment.yml +++ b/.github/workflows/qa-reviewer-assignment.yml @@ -17,7 +17,7 @@ jobs: contains(github.event.pull_request.body, '- [x] `Review automated tests`') || contains(github.event.pull_request.body, '- [x] `Execute manual tests`') || contains(github.event.pull_request.body, '- [x] `Provide feedback about the PR`') - runs-on: unity-linux-runner + runs-on: ubuntu-latest steps: diff --git a/.github/workflows/remove-labels-on-issue-close.yaml b/.github/workflows/remove-labels-on-issue-close.yaml index 3de88cf6d7..2ac5145e16 100644 --- a/.github/workflows/remove-labels-on-issue-close.yaml +++ b/.github/workflows/remove-labels-on-issue-close.yaml @@ -10,7 +10,7 @@ jobs: remove_labels: name: Calculate and remove issue labels if: ${{ !github.event.issue.pull_request }} # This is needed to distinguish from PRs (which we don't want to affect) - runs-on: unity-linux-runner + runs-on: ubuntu-latest permissions: issues: write