add: new inputs and method params

pull/261/head
Nic van Dessel 2024-02-21 17:08:49 -08:00
parent 7c242f70d9
commit b02540afdc
No known key found for this signature in database
GPG Key ID: 88AE94AD8B681486
6 changed files with 46 additions and 2 deletions

View File

@ -56,6 +56,14 @@ inputs:
required: false required: false
default: false default: false
description: 'Whether the tests are being run for a Unity package instead of a Unity project. If true, the action can only be run on Linux runners, and any custom docker image passed to this action must have `jq` installed. NOTE: may not work properly for packages with dependencies outside of the Unity Registry.' description: 'Whether the tests are being run for a Unity package instead of a Unity project. If true, the action can only be run on Linux runners, and any custom docker image passed to this action must have `jq` installed. NOTE: may not work properly for packages with dependencies outside of the Unity Registry.'
scopedRegistryUrl:
required: false
default: ''
description: 'Scoped registry to use for resolving package dependencies. Only applicable if packageMode is true.'
registryScopes:
required: false
default: ''
description: 'Registry scopes to use for resolving package dependencies. Only applicable if packageMode is true. Required if scopedRegistry is set.'
chownFilesTo: chownFilesTo:
required: false required: false
default: '' default: ''

17
dist/index.js generated vendored
View File

@ -98,7 +98,7 @@ function run() {
try { try {
model_1.Action.checkCompatibility(); model_1.Action.checkCompatibility();
const { workspace, actionFolder } = model_1.Action; const { workspace, actionFolder } = model_1.Action;
const { editorVersion, customImage, projectPath, customParameters, testMode, coverageOptions, artifactsPath, useHostNetwork, sshAgent, sshPublicKeysDirectoryPath, gitPrivateToken, githubToken, checkName, packageMode, packageName, chownFilesTo, dockerCpuLimit, dockerMemoryLimit, dockerIsolationMode, unityLicensingServer, runAsHostUser, containerRegistryRepository, containerRegistryImageVersion, unitySerial, } = model_1.Input.getFromUser(); const { editorVersion, customImage, projectPath, customParameters, testMode, coverageOptions, artifactsPath, useHostNetwork, sshAgent, sshPublicKeysDirectoryPath, gitPrivateToken, githubToken, checkName, packageMode, packageName, scopedRegistryUrl, registryScopes, chownFilesTo, dockerCpuLimit, dockerMemoryLimit, dockerIsolationMode, unityLicensingServer, runAsHostUser, containerRegistryRepository, containerRegistryImageVersion, unitySerial, } = model_1.Input.getFromUser();
const baseImage = new model_1.ImageTag({ const baseImage = new model_1.ImageTag({
editorVersion, editorVersion,
customImage, customImage,
@ -120,6 +120,8 @@ function run() {
sshPublicKeysDirectoryPath, sshPublicKeysDirectoryPath,
packageMode, packageMode,
packageName, packageName,
scopedRegistryUrl,
registryScopes,
gitPrivateToken, gitPrivateToken,
githubToken, githubToken,
chownFilesTo, chownFilesTo,
@ -398,6 +400,8 @@ class ImageEnvironmentFactory {
{ name: 'ARTIFACTS_PATH', value: parameters.artifactsPath }, { name: 'ARTIFACTS_PATH', value: parameters.artifactsPath },
{ name: 'PACKAGE_MODE', value: parameters.packageMode }, { name: 'PACKAGE_MODE', value: parameters.packageMode },
{ name: 'PACKAGE_NAME', value: parameters.packageName }, { name: 'PACKAGE_NAME', value: parameters.packageName },
{ name: 'SCOPED_REGISTRY_URL', value: parameters.scopedRegistryUrl },
{ name: 'REGISTRY_SCOPES', value: parameters.registryScopes },
{ name: 'GIT_PRIVATE_TOKEN', value: parameters.gitPrivateToken }, { name: 'GIT_PRIVATE_TOKEN', value: parameters.gitPrivateToken },
{ name: 'VERSION', value: parameters.buildVersion }, { name: 'VERSION', value: parameters.buildVersion },
{ name: 'CUSTOM_PARAMETERS', value: parameters.customParameters }, { name: 'CUSTOM_PARAMETERS', value: parameters.customParameters },
@ -711,6 +715,9 @@ class Input {
const checkName = (0, core_1.getInput)('checkName') || 'Test Results'; const checkName = (0, core_1.getInput)('checkName') || 'Test Results';
const rawPackageMode = (0, core_1.getInput)('packageMode') || 'false'; const rawPackageMode = (0, core_1.getInput)('packageMode') || 'false';
let packageName = ''; let packageName = '';
const scopedRegistryUrl = (0, core_1.getInput)('scopedRegistryUrl') || '';
const rawScopes = (0, core_1.getInput)('registryScopes') || '';
let registryScopes = [];
const chownFilesTo = (0, core_1.getInput)('chownFilesTo') || ''; const chownFilesTo = (0, core_1.getInput)('chownFilesTo') || '';
const dockerCpuLimit = (0, core_1.getInput)('dockerCpuLimit') || os_1.default.cpus().length.toString(); const dockerCpuLimit = (0, core_1.getInput)('dockerCpuLimit') || os_1.default.cpus().length.toString();
const bytesInMegabyte = 1024 * 1024; const bytesInMegabyte = 1024 * 1024;
@ -765,6 +772,12 @@ class Input {
} }
packageName = this.getPackageNameFromPackageJson(projectPath); packageName = this.getPackageNameFromPackageJson(projectPath);
this.verifyTestsFolderIsPresent(projectPath); this.verifyTestsFolderIsPresent(projectPath);
if (scopedRegistryUrl !== '') {
if (rawScopes === '') {
throw new Error('Scoped registry is set, but registryScopes is not set. registryScopes is required when using scopedRegistryUrl.');
}
registryScopes = rawScopes.split(',').map(scope => scope.trim());
}
} }
if (runAsHostUser !== 'true' && runAsHostUser !== 'false') { if (runAsHostUser !== 'true' && runAsHostUser !== 'false') {
throw new Error(`Invalid runAsHostUser "${runAsHostUser}"`); throw new Error(`Invalid runAsHostUser "${runAsHostUser}"`);
@ -805,6 +818,8 @@ class Input {
checkName, checkName,
packageMode, packageMode,
packageName, packageName,
scopedRegistryUrl,
registryScopes,
chownFilesTo, chownFilesTo,
dockerCpuLimit, dockerCpuLimit,
dockerMemoryLimit, dockerMemoryLimit,

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@ -22,6 +22,8 @@ export async function run() {
checkName, checkName,
packageMode, packageMode,
packageName, packageName,
scopedRegistryUrl,
registryScopes,
chownFilesTo, chownFilesTo,
dockerCpuLimit, dockerCpuLimit,
dockerMemoryLimit, dockerMemoryLimit,
@ -55,6 +57,8 @@ export async function run() {
sshPublicKeysDirectoryPath, sshPublicKeysDirectoryPath,
packageMode, packageMode,
packageName, packageName,
scopedRegistryUrl,
registryScopes,
gitPrivateToken, gitPrivateToken,
githubToken, githubToken,
chownFilesTo, chownFilesTo,

View File

@ -38,6 +38,8 @@ class ImageEnvironmentFactory {
{ name: 'ARTIFACTS_PATH', value: parameters.artifactsPath }, { name: 'ARTIFACTS_PATH', value: parameters.artifactsPath },
{ name: 'PACKAGE_MODE', value: parameters.packageMode }, { name: 'PACKAGE_MODE', value: parameters.packageMode },
{ name: 'PACKAGE_NAME', value: parameters.packageName }, { name: 'PACKAGE_NAME', value: parameters.packageName },
{ name: 'SCOPED_REGISTRY_URL', value: parameters.scopedRegistryUrl },
{ name: 'REGISTRY_SCOPES', value: parameters.registryScopes },
{ name: 'GIT_PRIVATE_TOKEN', value: parameters.gitPrivateToken }, { name: 'GIT_PRIVATE_TOKEN', value: parameters.gitPrivateToken },
{ name: 'VERSION', value: parameters.buildVersion }, { name: 'VERSION', value: parameters.buildVersion },
{ name: 'CUSTOM_PARAMETERS', value: parameters.customParameters }, { name: 'CUSTOM_PARAMETERS', value: parameters.customParameters },

View File

@ -101,6 +101,9 @@ class Input {
const checkName = getInput('checkName') || 'Test Results'; const checkName = getInput('checkName') || 'Test Results';
const rawPackageMode = getInput('packageMode') || 'false'; const rawPackageMode = getInput('packageMode') || 'false';
let packageName = ''; let packageName = '';
const scopedRegistryUrl = getInput('scopedRegistryUrl') || '';
const rawScopes = getInput('registryScopes') || '';
let registryScopes: string[] = [];
const chownFilesTo = getInput('chownFilesTo') || ''; const chownFilesTo = getInput('chownFilesTo') || '';
const dockerCpuLimit = getInput('dockerCpuLimit') || os.cpus().length.toString(); const dockerCpuLimit = getInput('dockerCpuLimit') || os.cpus().length.toString();
const bytesInMegabyte = 1024 * 1024; const bytesInMegabyte = 1024 * 1024;
@ -171,6 +174,16 @@ class Input {
packageName = this.getPackageNameFromPackageJson(projectPath); packageName = this.getPackageNameFromPackageJson(projectPath);
this.verifyTestsFolderIsPresent(projectPath); this.verifyTestsFolderIsPresent(projectPath);
if (scopedRegistryUrl !== '') {
if (rawScopes === '') {
throw new Error(
'Scoped registry is set, but registryScopes is not set. registryScopes is required when using scopedRegistryUrl.',
);
}
registryScopes = rawScopes.split(',').map(scope => scope.trim());
}
} }
if (runAsHostUser !== 'true' && runAsHostUser !== 'false') { if (runAsHostUser !== 'true' && runAsHostUser !== 'false') {
@ -219,6 +232,8 @@ class Input {
checkName, checkName,
packageMode, packageMode,
packageName, packageName,
scopedRegistryUrl,
registryScopes,
chownFilesTo, chownFilesTo,
dockerCpuLimit, dockerCpuLimit,
dockerMemoryLimit, dockerMemoryLimit,