mirror of
https://github.com/game-ci/unity-test-runner.git
synced 2026-01-29 06:20:07 +08:00
Compare commits
6 Commits
v4.2.0
...
snyk-upgra
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c724ebff69 | ||
|
|
0483262850 | ||
|
|
05a00ef5ac | ||
|
|
0ff419b913 | ||
|
|
e0e796f3d9 | ||
|
|
eba7e93e66 |
@@ -45,7 +45,7 @@ GameCI is free for everyone forever.
|
||||
|
||||
You can support us at [OpenCollective](https://opencollective.com/game-ci).
|
||||
|
||||
## Licence
|
||||
## License
|
||||
|
||||
This repository is [MIT](./LICENSE) licensed.
|
||||
|
||||
|
||||
2669
dist/index.js
generated
vendored
2669
dist/index.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
35
dist/platforms/ubuntu/run_tests.sh
vendored
35
dist/platforms/ubuntu/run_tests.sh
vendored
@@ -36,6 +36,25 @@ echo "Using custom parameters $CUSTOM_PARAMETERS."
|
||||
|
||||
echo "Using Unity version \"$UNITY_VERSION\" to test."
|
||||
|
||||
#
|
||||
# Setup token for private package registry.
|
||||
#
|
||||
|
||||
if [ -n "$PRIVATE_REGISTRY_TOKEN" ]; then
|
||||
echo "Private registry token detected, creating .upmconfig.toml"
|
||||
|
||||
UPM_CONFIG_TOML_PATH="$HOME/.upmconfig.toml"
|
||||
echo "Creating toml at path: $UPM_CONFIG_TOML_PATH"
|
||||
|
||||
touch $UPM_CONFIG_TOML_PATH
|
||||
|
||||
cat > "$UPM_CONFIG_TOML_PATH" <<EOF
|
||||
[npmAuth."$SCOPED_REGISTRY_URL"]
|
||||
token = "$PRIVATE_REGISTRY_TOKEN"
|
||||
alwaysAuth = true
|
||||
EOF
|
||||
fi
|
||||
|
||||
#
|
||||
# Create an empty project for testing if in package mode
|
||||
#
|
||||
@@ -120,20 +139,6 @@ if [ "$PACKAGE_MODE" = "true" ]; then
|
||||
|
||||
UNITY_PROJECT_PATH="$TEMP_PROJECT_PATH"
|
||||
|
||||
if [ -n "$PRIVATE_REGISTRY_TOKEN" ]; then
|
||||
echo "Private registry token detected, creating .upmconfig.toml"
|
||||
|
||||
UPM_CONFIG_TOML_PATH="$HOME/.upmconfig.toml"
|
||||
echo "Creating toml at path: $UPM_CONFIG_TOML_PATH"
|
||||
|
||||
touch $UPM_CONFIG_TOML_PATH
|
||||
|
||||
cat > "$UPM_CONFIG_TOML_PATH" <<EOF
|
||||
[npmAuth."$SCOPED_REGISTRY_URL"]
|
||||
token = "$PRIVATE_REGISTRY_TOKEN"
|
||||
alwaysAuth = true
|
||||
EOF
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
@@ -280,4 +285,4 @@ if [ -d "$FULL_COVERAGE_RESULTS_PATH" ]; then
|
||||
chmod -R a+r "$FULL_COVERAGE_RESULTS_PATH"
|
||||
else
|
||||
echo "Coverage results directory does not exist. If you are expecting coverage results, please make sure the Code Coverage package is installed in your unity project and that it is set up correctly."
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"@actions/exec": "^1.1.0",
|
||||
"@actions/github": "^5.0.0",
|
||||
"@octokit/openapi-types": "^11.2.0",
|
||||
"handlebars": "^4.7.7",
|
||||
"handlebars": "^4.7.8",
|
||||
"xml-js": "^1.6.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -22,9 +22,18 @@ const ResultsCheck = {
|
||||
files.map(async filepath => {
|
||||
if (!filepath.endsWith('.xml')) return;
|
||||
core.info(`Processing file ${filepath}...`);
|
||||
const fileData = await ResultsParser.parseResults(path.join(artifactsPath, filepath));
|
||||
core.info(fileData.summary);
|
||||
runs.push(fileData);
|
||||
try {
|
||||
const content = fs.readFileSync(path.join(artifactsPath, filepath), 'utf8');
|
||||
if (!content.includes('<test-run')) {
|
||||
// noinspection ExceptionCaughtLocallyJS
|
||||
throw new Error('File does not appear to be a NUnit XML file');
|
||||
}
|
||||
const fileData = await ResultsParser.parseResults(path.join(artifactsPath, filepath));
|
||||
core.info(fileData.summary);
|
||||
runs.push(fileData);
|
||||
} catch (error: any) {
|
||||
core.warning(`Failed to parse ${filepath}: ${error.message}`);
|
||||
}
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -76,10 +85,12 @@ const ResultsCheck = {
|
||||
const pullRequest = github.context.payload.pull_request;
|
||||
const headSha = (pullRequest && pullRequest.head.sha) || github.context.sha;
|
||||
|
||||
// Check max length for https://github.com/game-ci/unity-test-runner/issues/214
|
||||
const maxLength = 65_534;
|
||||
if (output.length > maxLength) {
|
||||
core.warning(`Output too long (${output.length}) truncating to ${maxLength}`);
|
||||
output = output.slice(0, maxLength);
|
||||
if (output.text.length > maxLength) {
|
||||
core.warning(`Test details of ${output.text.length} surpass limit of ${maxLength}`);
|
||||
output.text =
|
||||
'Test details omitted from GitHub UI due to length. See console logs for details.';
|
||||
}
|
||||
|
||||
core.info(`Posting results for ${headSha}`);
|
||||
|
||||
@@ -248,5 +248,13 @@ at Tests.SetupFailedTest.SetUp () [0x00000] in /github/workspace/unity-project/A
|
||||
expect(result.path).toBe('/github/workspace/unity-project/Assets/Tests/SetupFailedTest.cs');
|
||||
expect(result.line).toBe(10);
|
||||
});
|
||||
|
||||
test('Debug.LogError annotation point', () => {
|
||||
const result = ResultsParser.findAnnotationPoint(
|
||||
`FMODUnity.RuntimeUtils:DebugLogError (string) (at Assets/Plugins/FMOD/src/RuntimeUtils.cs:580)`,
|
||||
);
|
||||
expect(result.path).toBe('Assets/Plugins/FMOD/src/RuntimeUtils.cs');
|
||||
expect(result.line).toBe(580);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -127,12 +127,13 @@ const ResultsParser = {
|
||||
},
|
||||
|
||||
findAnnotationPoint(trace) {
|
||||
const regex = /at(?: .* in)? ((?<path>[^:]+):(?<line>\d+))/;
|
||||
// Find first entry with non-zero line number in stack trace
|
||||
const items = trace.match(/at .* in ((?<path>[^:]+):(?<line>\d+))/g);
|
||||
const items = trace.match(new RegExp(regex, 'g'));
|
||||
if (Array.isArray(items)) {
|
||||
const result: { path: any; line: number }[] = [];
|
||||
for (const item of items) {
|
||||
const match = item.match(/at .* in ((?<path>[^:]+):(?<line>\d+))/);
|
||||
const match = item.match(regex);
|
||||
const point = {
|
||||
path: match ? match.groups.path : '',
|
||||
line: match ? Number(match.groups.line) : 0,
|
||||
@@ -146,7 +147,7 @@ const ResultsParser = {
|
||||
}
|
||||
}
|
||||
// If all entries have zero line number match fallback pattern
|
||||
const match = trace.match(/at .* in ((?<path>[^:]+):(?<line>\d+))/);
|
||||
const match = trace.match(regex);
|
||||
return {
|
||||
path: match ? match.groups.path : '',
|
||||
line: match ? Number(match.groups.line) : 0,
|
||||
|
||||
14
yarn.lock
14
yarn.lock
@@ -2902,13 +2902,13 @@ growly@^1.3.0:
|
||||
resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz"
|
||||
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
|
||||
|
||||
handlebars@^4.7.7:
|
||||
version "4.7.7"
|
||||
resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz"
|
||||
integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
|
||||
handlebars@^4.7.8:
|
||||
version "4.7.8"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
|
||||
integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
neo-async "^2.6.0"
|
||||
neo-async "^2.6.2"
|
||||
source-map "^0.6.1"
|
||||
wordwrap "^1.0.0"
|
||||
optionalDependencies:
|
||||
@@ -4352,9 +4352,9 @@ natural-compare@^1.4.0:
|
||||
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
|
||||
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
||||
|
||||
neo-async@^2.6.0:
|
||||
neo-async@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
|
||||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
||||
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
||||
|
||||
nice-try@^1.0.4:
|
||||
|
||||
Reference in New Issue
Block a user