in src/main.ts [61:117]
function getInputs(): IActionInputs {
core.debug('Get action inputs.');
const connectionString = core.getInput('connection-string', { required: true });
const connectionConfig = new SqlConnectionConfig(connectionString);
let filePath = core.getInput('path', { required: true });
filePath = AzureSqlActionHelper.resolveFilePath(filePath);
// Optional inputs
const action = core.getInput('action');
switch (path.extname(filePath).toLowerCase()) {
case Constants.sqlFileExtension:
return {
actionType: ActionType.SqlAction,
connectionConfig: connectionConfig,
filePath: filePath,
additionalArguments: core.getInput('arguments') || undefined,
skipFirewallCheck: core.getBooleanInput('skip-firewall-check')
};
case Constants.dacpacExtension:
if (!action) {
throw new Error('The action input must be specified when using a .dacpac file.');
}
return {
actionType: ActionType.DacpacAction,
connectionConfig: connectionConfig,
filePath: filePath,
sqlpackageAction: AzureSqlActionHelper.getSqlpackageActionTypeFromString(action),
sqlpackagePath: core.getInput('sqlpackage-path') || undefined,
additionalArguments: core.getInput('arguments') || undefined,
skipFirewallCheck: core.getBooleanInput('skip-firewall-check')
} as IDacpacActionInputs;
case Constants.sqlprojExtension:
if (!action) {
throw new Error('The action input must be specified when using a .sqlproj file.');
}
return {
actionType: ActionType.BuildAndPublish,
connectionConfig: connectionConfig,
filePath: filePath,
buildArguments: core.getInput('build-arguments') || undefined,
sqlpackageAction: AzureSqlActionHelper.getSqlpackageActionTypeFromString(action),
sqlpackagePath: core.getInput('sqlpackage-path') || undefined,
additionalArguments: core.getInput('arguments') || undefined,
skipFirewallCheck: core.getBooleanInput('skip-firewall-check')
} as IBuildAndPublishInputs;
default:
throw new Error(`Invalid file type provided as input ${filePath}. File must be a .sql, .dacpac, or .sqlproj file.`)
}
}