Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
b10438d
unity-cli@v1.8.2
StephenHodgson Dec 20, 2025
ed17047
bump
StephenHodgson Dec 20, 2025
80515c3
integrate tests
StephenHodgson Dec 20, 2025
f38b099
default permissions
StephenHodgson Dec 20, 2025
ca76f67
update test logic
StephenHodgson Dec 20, 2025
b531116
update artifact names
StephenHodgson Dec 20, 2025
0d99a0c
test dev job builder
StephenHodgson Dec 22, 2025
7d0df3d
fix permissions
StephenHodgson Dec 22, 2025
2ce7a94
misc
StephenHodgson Dec 22, 2025
28d2f8e
don't write summary if no telemetry output
StephenHodgson Dec 22, 2025
fe5423a
add additional utp types for logging [skip ci]
StephenHodgson Dec 28, 2025
545be7a
rework tests
StephenHodgson Dec 28, 2025
5b67358
tweaks
StephenHodgson Dec 28, 2025
c7bbdd1
fixes to workflow
StephenHodgson Dec 28, 2025
4a6cacc
fix openupm installs
StephenHodgson Dec 28, 2025
32278ac
update matrix build artifact names
StephenHodgson Jan 4, 2026
15bce31
don't clean between runs
StephenHodgson Jan 5, 2026
937832a
cleanup artifacts between tests
StephenHodgson Jan 5, 2026
1c53207
upgate utp tests
StephenHodgson Jan 10, 2026
a9f7246
update run utp tests
StephenHodgson Jan 11, 2026
c48ad26
relax expected message success check
StephenHodgson Jan 11, 2026
cf870e6
update utp tests
StephenHodgson Jan 11, 2026
5e644f2
update utp tests
StephenHodgson Jan 11, 2026
78cd83d
update edit mode test error
StephenHodgson Jan 11, 2026
e4a60c6
update tests
StephenHodgson Jan 11, 2026
556902e
add editor assembly for editor tests
StephenHodgson Jan 12, 2026
f7bfda9
remove cp warning for gnu clobber
StephenHodgson Jan 12, 2026
9410cc8
fix test
StephenHodgson Jan 12, 2026
ede76ee
fix macos tests
StephenHodgson Jan 12, 2026
0f3a2c5
refactor tets
StephenHodgson Jan 12, 2026
6a33538
update utp tests
StephenHodgson Jan 25, 2026
f638dde
remove dup step
StephenHodgson Jan 25, 2026
f8d637c
Bump tar from 7.5.2 to 7.5.3 in the npm_and_yarn group across 1 direc…
dependabot[bot] Jan 25, 2026
18a04cf
remove some build versions to speed up testing
StephenHodgson Jan 25, 2026
ce4aa2e
fix artifact names
StephenHodgson Jan 25, 2026
c56991b
fix log uploads
StephenHodgson Jan 25, 2026
1ece76b
add SECURITY.md
StephenHodgson Feb 8, 2026
d690ad7
Merge branch 'main' into dev/utp-logging
StephenHodgson Feb 22, 2026
163b139
bump version to 1.9.0
StephenHodgson Feb 22, 2026
f54411f
fix asmdef formatting
StephenHodgson Feb 22, 2026
e310447
Bump tar from 7.5.2 to 7.5.9 in the npm_and_yarn group across 1 direc…
dependabot[bot] Feb 22, 2026
9570af3
silly unity, they didn't update hub prod endpoint to latest hub version
StephenHodgson Feb 22, 2026
c2c3acb
Revert "silly unity, they didn't update hub prod endpoint to latest h…
StephenHodgson Feb 22, 2026
c31cfaf
Change output summary format
StephenHodgson Feb 22, 2026
b220e44
update summary output format
StephenHodgson Feb 22, 2026
efa5562
fix failing ci/cd checks
StephenHodgson Feb 22, 2026
f27ccf2
update github actions summary layout
StephenHodgson Feb 27, 2026
75ab052
update summary log format
StephenHodgson Feb 27, 2026
19f46b4
fix build errors
StephenHodgson Feb 27, 2026
f2c2482
bump deps
StephenHodgson Feb 27, 2026
4eaafc6
Bump tar from 7.5.2 to 7.5.8 in the npm_and_yarn group across 1 direc…
dependabot[bot] Feb 27, 2026
38b655a
fix some regressions. add unit test tables
StephenHodgson Feb 27, 2026
dfc3e1d
add additional unit tests to see table format
StephenHodgson Feb 27, 2026
d08413a
give me all the logs
StephenHodgson Feb 28, 2026
479ddd4
Bump the npm_and_yarn group across 1 directory with 2 updates (#71)
dependabot[bot] Feb 28, 2026
3bd4dab
move utp.ts back into root src/
StephenHodgson Feb 28, 2026
b7021b0
bump deps
StephenHodgson Feb 28, 2026
c470a2d
fix import
StephenHodgson Feb 28, 2026
ff04dcd
bump for new build
StephenHodgson Apr 18, 2026
63b45e6
UTP log merge dedupe, Windows path checks, Android/artifact CI, and U…
StephenHodgson Apr 18, 2026
0706882
bump deps
StephenHodgson Apr 18, 2026
c082ce9
fix escape
StephenHodgson Apr 18, 2026
12f420d
more tests
StephenHodgson Apr 19, 2026
583b228
update build matrix
StephenHodgson Apr 19, 2026
9b537b3
add a artifact scan step to validate the utp message parsing outputs
StephenHodgson Apr 19, 2026
70279c6
split out logger provider
StephenHodgson Apr 20, 2026
d3e8c45
reformat the summaries
StephenHodgson Apr 20, 2026
0f641ea
I want my tables back
StephenHodgson Apr 20, 2026
0ef8efc
expand logging in summary
StephenHodgson Apr 20, 2026
8471cde
normalize annotations
StephenHodgson Apr 22, 2026
43b4f08
fix hidden CI/CD failures
StephenHodgson Apr 22, 2026
c9bad08
Merge branch 'main' into dev/utp-logging
StephenHodgson Apr 24, 2026
2204cd3
package-lock.json
StephenHodgson Apr 24, 2026
7279bc7
add additional tests
StephenHodgson Apr 24, 2026
b35017d
isolate negative UTP scenarios from matrix builds
StephenHodgson Apr 24, 2026
71bb2f5
fix CI profile and artifact scan guardrails
StephenHodgson Apr 24, 2026
aca1288
stabilize normal UTP profile for matrix jobs
StephenHodgson Apr 24, 2026
72b0b3a
prevent CI hangs during editor uninstall cleanup
StephenHodgson Apr 24, 2026
230822c
make UTP guardrail compatible without ripgrep
StephenHodgson Apr 24, 2026
b2af206
harden Unity project creation against transient CI flakes
StephenHodgson Apr 24, 2026
150c860
bump actions
StephenHodgson Apr 25, 2026
b8922c8
fix job permissions
StephenHodgson Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/build-options.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@
"6000.1.*",
"6000.2"
],
"tests": [
"CompilerWarnings",
"CompilerErrors",
"BuildWarnings",
"BuildErrors",
"PlaymodeTestsErrors",
"EditmodeTestsErrors"
],
"include": [
{
"os": "ubuntu-latest",
Expand Down
48 changes: 43 additions & 5 deletions .github/workflows/unity-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,37 @@ jobs:
else
echo "Skipping build: Unity version $version does not support the build pipeline package (requires 2019.4+)"
fi
- name: Copy selected Unity test
if: ${{ matrix.unity-version != 'none' && matrix.tests != '' }}
run: |
set -euo pipefail
test_name="${{ matrix.tests }}"
src="${GITHUB_WORKSPACE}/unity-tests/${test_name}.cs"
if [ ! -f "$src" ]; then
echo "::error::Requested test '$test_name' not found at $src" && exit 1
fi

case "$test_name" in
CompilerWarnings|CompilerErrors)
dest="$UNITY_PROJECT_PATH/Assets/UnityCliTests"
;;
BuildWarnings|BuildErrors)
dest="$UNITY_PROJECT_PATH/Assets/Editor/UnityCliTests"
;;
PlaymodeTestsErrors)
dest="$UNITY_PROJECT_PATH/Assets/Tests/PlayMode/UnityCliTests"
;;
EditmodeTestsErrors)
dest="$UNITY_PROJECT_PATH/Assets/Tests/EditMode/UnityCliTests"
;;
*)
echo "::error::Unknown test selection '$test_name'" && exit 1
;;
esac

mkdir -p "$dest"
cp "$src" "$dest/"
echo "Copied $test_name to $dest"
- name: Install OpenUPM and build pipeline package
if: ${{ steps.verify-project-path.outputs.RUN_BUILD == 'true' }}
working-directory: ${{ env.UNITY_PROJECT_PATH }}
Expand Down Expand Up @@ -132,12 +163,12 @@ jobs:
PACKAGE_MANAGER_LOG_PATH=$(unity-cli package-manager-logs)
LICENSING_CLIENT_LOG_PATH=$(unity-cli licensing-client-logs)
LICENSING_AUDIT_LOG_PATH=$(unity-cli licensing-audit-logs)

echo "Hub Log Path: ${HUB_LOG_PATH}"
echo "Package Manager Log Path: ${PACKAGE_MANAGER_LOG_PATH}"
echo "Licensing Client Log Path: ${LICENSING_CLIENT_LOG_PATH}"
echo "Licensing Audit Log Path: ${LICENSING_AUDIT_LOG_PATH}"

if [ ! -f "${HUB_LOG_PATH}" ]; then
echo "::warning:: Hub log file does not exist at ${HUB_LOG_PATH}"
# find all info-log.json files in ~/.config/unity3d/ - print their paths
Expand All @@ -151,18 +182,25 @@ jobs:
find ~/.config/ -type f -exec echo "{}" \;
echo "::warning:: Hub log file does not exist at any known location"
fi

if [ ! -f "${PACKAGE_MANAGER_LOG_PATH}" ]; then
echo "::warning::Package Manager log file does not exist at ${PACKAGE_MANAGER_LOG_PATH}"
fi

if [ ! -f "${LICENSING_CLIENT_LOG_PATH}" ]; then
echo "::error::Licensing Client log file does not exist at ${LICENSING_CLIENT_LOG_PATH}"
fi

if [ ! -f "${LICENSING_AUDIT_LOG_PATH}" ]; then
echo "::error::Licensing Audit log file does not exist at ${LICENSING_AUDIT_LOG_PATH}"
fi
- name: Upload UTP logs
if: always()
uses: actions/upload-artifact@v6
with:
name: utp-logs-${{ matrix.name }}
path: '**/*-utp-json.log'
if-no-files-found: ignore
- name: Return License
if: always()
run: unity-cli return-license --license personal
28 changes: 14 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rage-against-the-pixel/unity-cli",
"version": "1.8.1",
"version": "1.8.2",
"description": "A command line utility for the Unity Game Engine.",
"author": "RageAgainstThePixel",
"license": "MIT",
Expand Down
20 changes: 20 additions & 0 deletions unity-tests/BuildErrors.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;

namespace UnityCli.UtpSamples
{
/// <summary>
/// Forces the build pipeline to fail by throwing a BuildFailedException.
/// Place under an Editor folder when copying into a project.
/// </summary>
public class BuildErrors : IPreprocessBuildWithReport
{
public int callbackOrder => 0;

public void OnPreprocessBuild(BuildReport report)
{
throw new System.Exception("Intentional build failure for test matrix coverage.");
}
}
}
20 changes: 20 additions & 0 deletions unity-tests/BuildWarnings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;

namespace UnityCli.UtpSamples
{
/// <summary>
/// Emits a build-time warning via the build pipeline (no custom UTP JSON logging).
/// Place under an Editor folder when copying into a project.
/// </summary>
public class BuildWarnings : IPreprocessBuildWithReport
{
public int callbackOrder => 0;

public void OnPreprocessBuild(BuildReport report)
{
UnityEngine.Debug.LogWarning("Intentional build warning for test matrix coverage.");
}
}
}
4 changes: 4 additions & 0 deletions unity-tests/CompilerErrors.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Intentional compiler error for matrix scenario coverage.
#error Intentional compiler error: CS1029
Comment thread
StephenHodgson marked this conversation as resolved.

// Note: file is kept minimal so it can be copied into a project to force a build failure.
20 changes: 20 additions & 0 deletions unity-tests/CompilerWarnings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using UnityEngine;

namespace UnityCli.UtpSamples
{
/// <summary>
/// Introduces a benign compiler warning (unused variable) without emitting custom logs.
Comment thread
StephenHodgson marked this conversation as resolved.
/// </summary>
public class CompilerWarnings : MonoBehaviour
{
private void Awake()
{
ObsoleteApi(); // CS0618: call to obsolete member
Comment thread
StephenHodgson marked this conversation as resolved.
}

[System.Obsolete("Intentional warning for test matrix coverage", false)]
private static void ObsoleteApi()
{
}
}
}
16 changes: 16 additions & 0 deletions unity-tests/EditmodeTestsErrors.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using NUnit.Framework;

namespace UnityCli.UtpSamples
{
/// <summary>
/// Editmode test that intentionally fails to produce real test failure output.
/// </summary>
public class EditmodeTestsErrors
{
[Test]
public void FailsEditmodeSuite()
{
Assert.Fail("Intentional editmode failure for test matrix coverage.");
}
}
}
19 changes: 19 additions & 0 deletions unity-tests/PlaymodeTestsErrors.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using System.Collections;
using NUnit.Framework;
using UnityEngine.TestTools;

namespace UnityCli.UtpSamples
{
/// <summary>
/// Playmode test that intentionally fails to generate real test failure output.
/// </summary>
public class PlaymodeTestsErrors
{
[UnityTest]
public IEnumerator FailsPlaymodeSuite()
{
yield return null;
Assert.Fail("Intentional playmode failure for test matrix coverage.");
}
}
}
Loading