in src/AzureSqlActionHelper.ts [142:186]
private static async _getSqlPackageExecutablePath(): Promise<string> {
core.debug('Getting location of SqlPackage');
let sqlPackageVersions: ISqlPackageInstall[] = [];
let sqlPackagePathInstalledWithDotnetTool = await this._getSqlPackageExeInstalledDotnetTool();
if (sqlPackagePathInstalledWithDotnetTool === undefined || sqlPackagePathInstalledWithDotnetTool.sqlPackagePath === '') {
core.debug('SqlPackage installed with dotnet tool not found on machine.');
} else {
sqlPackageVersions.push(sqlPackagePathInstalledWithDotnetTool);
}
let sqlPackagePathInstalledWithSSMS = await this._getSqlPackageInstalledWithSSMS();
if (sqlPackagePathInstalledWithSSMS === undefined || sqlPackagePathInstalledWithSSMS.sqlPackagePath === '') {
core.debug('SqlPackage installed with SSMS not found on machine.');
} else {
sqlPackageVersions.push(sqlPackagePathInstalledWithSSMS);
}
let sqlPackagePathInstalledWithDacMsi = await this._getSqlPackageInstalledWithDacMsi();
if (sqlPackagePathInstalledWithDacMsi === undefined || sqlPackagePathInstalledWithDacMsi.sqlPackagePath === '') {
core.debug('SqlPackage installed with DacFramework MSI not found on machine.');
} else {
sqlPackageVersions.push(sqlPackagePathInstalledWithDacMsi);
}
let sqlPackagePathInstalledWithSSDT = await this._getSqlPackageInstalledWithSSDT();
if (sqlPackagePathInstalledWithSSDT === undefined || sqlPackagePathInstalledWithSSDT.sqlPackagePath === '') {
core.debug('SqlPackage installed with SSDT not found on machine.');
} else {
sqlPackageVersions.push(sqlPackagePathInstalledWithSSDT);
}
// sort the versions in ascending order, remove max version from the end
sqlPackageVersions.sort((sqlPackage1, sqlPackage2) => {
return semver.compareBuild(sqlPackage2.sqlPackageVersion, sqlPackage1.sqlPackageVersion);
});
let maximumVersion = sqlPackageVersions.pop();
if (maximumVersion === undefined || maximumVersion.sqlPackagePath === '') {
throw new Error('Unable to find the location of SqlPackage');
}
core.debug(`SqlPackage ${maximumVersion.sqlPackageVersion} selected at location: ${maximumVersion.sqlPackagePath}`);
return maximumVersion.sqlPackagePath;
}