in src/main.ts [17:52]
export default async function run() {
await Setup.setupSqlcmd();
let firewallManager;
try {
setUserAgentVariable();
const inputs = getInputs();
const azureSqlAction = new AzureSqlAction(inputs);
// Unless skip-firewall-check is set to true, check if the runner's IP address is allowed to connect to the server
if (inputs.skipFirewallCheck !== true) {
const runnerIPAddress = await SqlUtils.detectIPAddress(inputs.connectionConfig);
if (runnerIPAddress) {
core.debug(`Temporarily adding '${runnerIPAddress}' to the firewall of ${inputs.connectionConfig.Server}.`);
let azureResourceAuthorizer = await AuthorizerFactory.getAuthorizer();
let azureSqlResourceManager = await AzureSqlResourceManager.getResourceManager(inputs.connectionConfig.Server, azureResourceAuthorizer);
firewallManager = new FirewallManager(azureSqlResourceManager);
await firewallManager.addFirewallRule(runnerIPAddress);
}
}
await azureSqlAction.execute();
}
catch (error) {
core.setFailed(error.message);
}
finally {
if (firewallManager) {
await firewallManager.removeFirewallRule();
}
// Reset AZURE_HTTP_USER_AGENT
core.exportVariable('AZURE_HTTP_USER_AGENT', userAgentPrefix);
}
}