From f972cdcab7925ced9686e6d2be7542ee16e2fb69 Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Thu, 10 Sep 2026 00:58:12 +0900 Subject: [PATCH 1/7] Bump game-ci/unity-test-runner to v4.4.0 --- .github/workflows/test-integration.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index 6caaabf..7ab121f 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -63,7 +63,7 @@ jobs: run: echo "secret_key=UNITY_LICENSE_$(echo ${{ matrix.unityVersion }} | cut -c 1-4)" >> "$GITHUB_ENV" - name: Run tests - uses: game-ci/unity-test-runner@0ff419b913a3630032cbe0de48a0099b5a9f0ed9 # v4 + uses: game-ci/unity-test-runner@32e57712352b500e17974b245a6dce9e11a73213 # v4.4.0 with: githubToken: ${{ secrets.GITHUB_TOKEN }} unityVersion: ${{ matrix.unityVersion }} # Default is `auto` diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d7341d4..2efa477 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -83,7 +83,7 @@ jobs: run: echo "secret_key=UNITY_LICENSE_$(echo ${{ matrix.unityVersion }} | cut -c 1-4)" >> "$GITHUB_ENV" - name: Run tests - uses: game-ci/unity-test-runner@0ff419b913a3630032cbe0de48a0099b5a9f0ed9 # v4 + uses: game-ci/unity-test-runner@32e57712352b500e17974b245a6dce9e11a73213 # v4.4.0 with: githubToken: ${{ secrets.GITHUB_TOKEN }} unityVersion: ${{ matrix.unityVersion }} # Default is `auto` From 1982b2041c9c048bc189478b5331b254fe8a0e37 Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Thu, 10 Sep 2026 09:58:29 +0900 Subject: [PATCH 2/7] Upgrade Unity versions used to run tests on CI (Unity 6.6) --- .github/workflows/test.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2efa477..2b377ba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,10 +45,11 @@ jobs: unityVersion: # Available versions see: https://game.ci/docs/docker/versions - 6000.0.43f1 # Latest version that does not pin the test framework package. - 6000.0.44f1 # pin test-framework v1.5.1 - - 6000.0.59f2 # pin test-framework v1.6.0 - - 6000.0.78f1 - - 6000.3.18f1 - - &latest_unity_version 6000.5.1f1 # pin test-framework v1.7.0 +# - 6000.0.59f2 # pin test-framework v1.6.0 + - 6000.0.83f1 + - 6000.3.23f1 + - 6000.5.0f1 # pin test-framework v1.7.0 + - &latest_unity_version 6000.6.0f1 # pin test-framework v1.8.0 testMode: - All # run tests in editor include: From 2871c3324a452092336025470dc06585f5537253 Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Thu, 10 Sep 2026 10:15:17 +0900 Subject: [PATCH 3/7] Upgrade create-script-folders-with-tests package to v1.4.1 --- Packages/manifest.json | 2 +- Packages/packages-lock.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Packages/manifest.json b/Packages/manifest.json index 7d02c9a..35ce2fd 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,7 +1,7 @@ { "dependencies": { "com.cysharp.unitask": "2.5.11", - "com.nowsprinting.create-script-folders-with-tests": "1.4.0", + "com.nowsprinting.create-script-folders-with-tests": "1.4.1", "com.nowsprinting.local-package-sample": "file:../LocalPackages/com.nowsprinting.local-package-sample", "com.nowsprinting.test-helper": "1.5.1", "com.nowsprinting.test-helper.input": "1.0.1", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 8831ee5..ede0363 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -8,7 +8,7 @@ "url": "https://package.openupm.com" }, "com.nowsprinting.create-script-folders-with-tests": { - "version": "1.4.0", + "version": "1.4.1", "depth": 0, "source": "registry", "dependencies": {}, From 8d28431580e4f61c8470be7d9690f706807aa9b7 Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Thu, 10 Sep 2026 10:48:00 +0900 Subject: [PATCH 4/7] Add test-framework version check for Unity 6.6 (v1.8.0) Unity 6000.6.0f1 bundles com.unity.test-framework 1.8.0, so the open-ended "6000.5.0f1 and later expects 1.7.0" case failed on CI. Cap that range at 6000.6.0f1 and add a case for 6000.6.0f1 and later. Co-Authored-By: Claude Fable 5.1 --- .../UnityTestFrameworkVersionCheck.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityTestFrameworkVersionCheck.cs b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityTestFrameworkVersionCheck.cs index aaf4283..86a97e6 100644 --- a/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityTestFrameworkVersionCheck.cs +++ b/Assets/APIExamples/Tests/Editor/UnityTestFramework/UnityTestFrameworkVersionCheck.cs @@ -69,11 +69,19 @@ public async Task Unity6000_2_6f1から6000_5_0f1まで_TestFrameworkはv1_6_0 } [Test] - [UnityVersion(newerThanOrEqual: "6000.5.0f1")] - public async Task Unity6000_5_0f1以降_TestFrameworkはv1_7_0固定() + [UnityVersion(newerThanOrEqual: "6000.5.0f1", olderThan: "6000.6.0f1")] + public async Task Unity6000_5_0f1から6000_6_0f1まで_TestFrameworkはv1_7_0固定() { var actual = await GetTestFrameworkPackageVersionAsync(); Assert.That(actual, Is.EqualTo("1.7.0")); } + + [Test] + [UnityVersion(newerThanOrEqual: "6000.6.0f1")] + public async Task Unity6000_6_0f1以降_TestFrameworkはv1_8_0固定() + { + var actual = await GetTestFrameworkPackageVersionAsync(); + Assert.That(actual, Is.EqualTo("1.8.0")); + } } } From 713b5f7126790b82b0032150c1658875f4ede121 Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Thu, 10 Sep 2026 01:28:35 +0900 Subject: [PATCH 5/7] TEMPORARY Remove quotes from testCategory in customParameters unity-test-runner v4.4.0 delegates execution to the game-ci CLI, which interpolates each env value into a `sh -c` command string without escaping (`--env NAME="${value}"`). The inner double quotes closed that wrapper early, letting `;` split the command and leaving `docker run` without an image. Unquoted, the value reaches the container identically to before, and stays compatible with the pre-CLI action architecture. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/test-integration.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index 7ab121f..0400a92 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -68,7 +68,7 @@ jobs: githubToken: ${{ secrets.GITHUB_TOKEN }} unityVersion: ${{ matrix.unityVersion }} # Default is `auto` checkName: test result (${{ matrix.unityVersion }}, ${{ matrix.testMode }}) - customParameters: -testCategory "Integration;!IgnoreCI" -testHelperScreenshotDirectory /github/workspace/artifacts/Screenshots + customParameters: -testCategory Integration;!IgnoreCI -testHelperScreenshotDirectory /github/workspace/artifacts/Screenshots # Note: `/github/workspace/artifacts` is the artifacts path inside the game-ci container testMode: ${{ matrix.testMode }} env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2b377ba..df9933b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -89,7 +89,7 @@ jobs: githubToken: ${{ secrets.GITHUB_TOKEN }} unityVersion: ${{ matrix.unityVersion }} # Default is `auto` checkName: test result (${{ matrix.unityVersion }}, ${{ matrix.testMode }}) - customParameters: -testCategory "!IgnoreCI;!Integration" -testHelperScreenshotDirectory /github/workspace/artifacts/Screenshots + customParameters: -testCategory !IgnoreCI;!Integration -testHelperScreenshotDirectory /github/workspace/artifacts/Screenshots # Note: `/github/workspace/artifacts` is the artifacts path inside the game-ci container coverageOptions: generateAdditionalMetrics;generateTestReferences;generateHtmlReport;generateAdditionalReports;dontClear;assemblyFilters:${{ env.assembly_filters }} # see: https://docs.unity3d.com/Packages/com.unity.testtools.codecoverage@1.2/manual/CoverageBatchmode.html From fec8be25e8f00fa0f19131880e85d3dca8c84e1f Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Thu, 10 Sep 2026 11:10:58 +0900 Subject: [PATCH 6/7] Bump k1LoW/octocov-action to v1.5.2 v1.5.0 runs actions/github-script v7.0.1, a Node 20 action that GitHub now forces onto Node 24 with a deprecation warning. v1.5.1 and later use github-script v9, which targets Node 24. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df9933b..cc0f0ba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -105,7 +105,7 @@ jobs: if: ${{ matrix.octocov }} - name: Run octocov - uses: k1LoW/octocov-action@73d561f65d59e66899ed5c87e4621a913b5d5c20 # v1 + uses: k1LoW/octocov-action@a167dc0dee441b7ffc45e1b862ab55ec0d87f278 # v1.5.2 if: ${{ matrix.octocov }} - name: Upload test results From f4223eb95d872d275f52571fd37b5ab98226a1bb Mon Sep 17 00:00:00 2001 From: Koji Hasegawa Date: Sat, 12 Sep 2026 01:13:53 +0900 Subject: [PATCH 7/7] Run Unity 6000.0.59f2 tests with personal license activation Its licensing client (1.17.2) rejects the .ulf loaded via file activation with "'com.unity.editor.headless' was not found" and exits 198 when tests start; every other version in the matrix accepts the same file. Account (personal) activation resolves entitlements online, and game-ci CLI v0.1.60+ lets the method be forced per job through GAME_CI_UNITY_LICENSING_METHOD, so only this version switches. Co-Authored-By: Claude Fable 5.1 --- .github/workflows/test.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cc0f0ba..dfdf88f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,7 +45,7 @@ jobs: unityVersion: # Available versions see: https://game.ci/docs/docker/versions - 6000.0.43f1 # Latest version that does not pin the test framework package. - 6000.0.44f1 # pin test-framework v1.5.1 -# - 6000.0.59f2 # pin test-framework v1.6.0 + - 6000.0.59f2 # pin test-framework v1.6.0 - 6000.0.83f1 - 6000.3.23f1 - 6000.5.0f1 # pin test-framework v1.7.0 @@ -53,6 +53,8 @@ jobs: testMode: - All # run tests in editor include: + - unityVersion: 6000.0.59f2 + licensingMethod: personal # licensing client 1.17.2 rejects the .ulf (file) with a missing headless entitlement - unityVersion: *latest_unity_version octocov: true @@ -83,6 +85,11 @@ jobs: - name: Set license secret key run: echo "secret_key=UNITY_LICENSE_$(echo ${{ matrix.unityVersion }} | cut -c 1-4)" >> "$GITHUB_ENV" + - name: Force licensing method + run: echo "GAME_CI_UNITY_LICENSING_METHOD=${{ matrix.licensingMethod }}" >> "$GITHUB_ENV" + if: ${{ matrix.licensingMethod }} + # Not passed via `env:` on the test step: an empty GAME_CI_* value is still parsed and fails the CLI's choices check + - name: Run tests uses: game-ci/unity-test-runner@32e57712352b500e17974b245a6dce9e11a73213 # v4.4.0 with: