export default async function run()

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);
    }
}