Skip to content

Commit 0ca4718

Browse files
committed
[AUTO] Update generated code
1 parent 4d9f5ce commit 0ca4718

File tree

1 file changed

+53
-16
lines changed

1 file changed

+53
-16
lines changed

dist/index.js

Lines changed: 53 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ async function main() {
145145
throw new Error('Either `project`, `workspace` or `spm-package-path` must be set, but they are mutually exclusive!');
146146
}
147147
const scheme = core.getInput('scheme', { required: !!workspace || !!spmPackage });
148+
const disableEnumInputValidation = core.getBooleanInput('disable-enum-input-validation');
148149
function _pushArg(name, value) {
149150
xcodebuildArgs.push({ name: `-${name}`, value: value });
150151
}
@@ -160,40 +161,58 @@ async function main() {
160161
_pushArg(name, { originalValue: value, resolvedValue: processedValue });
161162
}
162163
function _addInputArg(inputName, argName, opts) {
163-
if (opts?.isList) {
164+
if (opts?.isList) { // opts is guaranteed to be set in this branch.
164165
let values = core.getMultilineInput(inputName);
165-
if (values)
166-
values.forEach(value => _pushArgWithValue(argName ?? inputName, value, {
167-
isPath: opts?.isPath,
166+
if (!values)
167+
return false;
168+
for (const value of values) {
169+
if (!disableEnumInputValidation && opts.validValues && !opts.validValues.includes(value))
170+
throw new Error(`Invalid value for ${inputName}: ${value}! Valid values: ${opts.validValues.join(', ')}`);
171+
_pushArgWithValue(argName ?? inputName, value, {
172+
isPath: opts.isPath,
168173
skipEmptyValues: true,
169-
}));
174+
});
175+
}
176+
return values.length > 0;
170177
}
171178
else {
172179
let value = core.getInput(inputName);
173-
if (value)
174-
_pushArgWithValue(argName ?? inputName, value, {
175-
isPath: opts?.isPath,
176-
skipEmptyValues: false,
177-
});
180+
if (!value)
181+
return false;
182+
if (!disableEnumInputValidation && opts?.validValues && !opts.validValues.includes(value))
183+
throw new Error(`Invalid value for ${inputName}: ${value}! Valid values: ${opts.validValues.join(', ')}`);
184+
_pushArgWithValue(argName ?? inputName, value, {
185+
isPath: opts?.isPath,
186+
skipEmptyValues: false,
187+
});
188+
return true;
178189
}
179190
}
180191
function addInputArg(inputName, argName) {
181-
_addInputArg(inputName, argName);
192+
return _addInputArg(inputName, argName);
182193
}
183194
function addPathArg(inputName, argName) {
184-
_addInputArg(inputName, argName, { isPath: true });
195+
return _addInputArg(inputName, argName, { isPath: true });
185196
}
186197
function addListArg(inputName, argName) {
187-
_addInputArg(inputName, argName, { isList: true });
198+
return _addInputArg(inputName, argName, { isList: true });
199+
}
200+
function addEnumArg(inputName, validValues, argName) {
201+
return _addInputArg(inputName, argName, { validValues });
188202
}
189203
function addBoolArg(inputName, argName) {
190204
const value = core.getInput(inputName);
191-
if (value?.length)
205+
const hasValue = !!value && value.length > 0;
206+
if (hasValue)
192207
_pushArgWithValue(argName ?? inputName, core.getBooleanInput(inputName) ? 'YES' : 'NO');
208+
return hasValue;
193209
}
194210
function addFlagArg(inputName, argName) {
195-
if (core.getInput(inputName).length && core.getBooleanInput(inputName))
211+
const value = core.getInput(inputName);
212+
const hasValue = !!value && value.length > 0;
213+
if (hasValue && core.getBooleanInput(inputName))
196214
_pushArg(argName ?? inputName);
215+
return hasValue;
197216
}
198217
if (workspace) {
199218
_pushArgWithValue('workspace', workspace, { isPath: true });
@@ -203,12 +222,14 @@ async function main() {
203222
}
204223
if (scheme)
205224
_pushArgWithValue('scheme', scheme);
206-
addInputArg('target');
225+
if (addInputArg('target') && addFlagArg('all-targets', 'alltargets'))
226+
throw new Error('`target` and `all-targets` are mutually exclusive!');
207227
addInputArg('destination');
208228
addInputArg('configuration');
209229
addInputArg('sdk');
210230
addInputArg('arch');
211231
addPathArg('xcconfig');
232+
addInputArg('toolchain');
212233
addInputArg('jobs');
213234
addFlagArg('parallelize-targets', 'parallelizeTargets');
214235
addBoolArg('enable-code-coverage', 'enableCodeCoverage');
@@ -225,19 +246,35 @@ async function main() {
225246
addPathArg('cloned-source-packages-path', 'clonedSourcePackagesDirPath');
226247
addPathArg('package-cache-path', 'packageCachePath');
227248
addPathArg('derived-data-path', 'derivedDataPath');
249+
addInputArg('default-package-registry-url', 'defaultPackageRegistryURL');
250+
addEnumArg('package-dependency-scm-to-registry-transformation', ['none', 'useRegistryIdentity', 'useRegistryIdentityAndSources'], 'packageDependencySCMToRegistryTransformation');
228251
addFlagArg('disable-package-repository-cache', 'disablePackageRepositoryCache');
229252
addFlagArg('disable-automatic-package-resolution', 'disableAutomaticPackageResolution');
230253
addFlagArg('skip-package-updates', 'skipPackageUpdates');
231254
addFlagArg('skip-package-plugin-validation', 'skipPackagePluginValidation');
232255
addFlagArg('skip-macro-validation', 'skipMacroValidation');
256+
addEnumArg('package-fingerprint-policy', ['warn', 'strict'], 'packageFingerprintPolicy');
257+
addEnumArg('package-signing-entity-policy', ['warn', 'strict'], 'packageSigningEntityPolicy');
233258
addPathArg('xcroot');
234259
addPathArg('xctestrun');
260+
addInputArg('test-language', 'testLanguage');
261+
addInputArg('test-region', 'testRegion');
235262
addInputArg('test-plan', 'testPlan');
236263
addListArg('only-testing');
237264
addListArg('skip-testing');
265+
addListArg('only-test-configuration');
266+
addListArg('skip-test-configuration');
267+
addInputArg('test-iterations');
268+
addFlagArg('retry-tests-on-failure');
269+
addFlagArg('run-tests-until-failure');
238270
addFlagArg('skip-unavailable-actions', 'skipUnavailableActions');
239271
addFlagArg('allow-provisioning-updates', 'allowProvisioningUpdates');
240272
addFlagArg('allow-provisioning-device-registration', 'allowProvisioningDeviceRegistration');
273+
addFlagArg('export-notarized-app', 'exportNotarizedApp');
274+
addPathArg('export-options-plist', 'exportOptionsPlist');
275+
addFlagArg('export-archive', 'exportArchive');
276+
addPathArg('archive-path', 'archivePath');
277+
addFlagArg('create-xcframework');
241278
const buildSettings = core.getInput('build-settings');
242279
if (buildSettings)
243280
xcodebuildArgs.push(...buildSettings.split(' ').map(v => { return { name: v }; }));

0 commit comments

Comments
 (0)