Fix sync/async callback issue

This commit is contained in:
Heath Stewart 2020-04-04 12:42:08 -07:00
parent 5cf04033c1
commit 7d7af37b7e
3 changed files with 30 additions and 33 deletions

View File

@ -21,7 +21,7 @@ jobs:
id: setup_msbuild
uses: ./
with:
vs-version: "[16.4,16.6]"
vs-version: "[16.4,)"
- name: echo msbuild path
run: echo "${{ steps.setup_msbuild.outputs.msbuildPath }}"

30
dist/index.js vendored
View File

@ -1919,6 +1919,7 @@ else {
}
core.debug(`Execution arguments: ${VSWHERE_EXEC}`);
function run() {
var _a;
return __awaiter(this, void 0, void 0, function* () {
try {
// exit if non Windows runner
@ -1939,7 +1940,7 @@ function run() {
core.debug(`Found tool in PATH: ${vsWhereInPath}`);
vswhereToolExe = path.join(vsWhereInPath, 'vswhere.exe');
}
catch (_a) {
catch (_b) {
// wasn't found because which threw
}
finally {
@ -1947,28 +1948,25 @@ function run() {
}
}
core.debug(`Full tool exe: ${vswhereToolExe}`);
let foundToolPath = '';
let installationPath = '';
const options = {};
options.listeners = {
stdout: (data) => {
const output = data.toString().trim();
core.debug(`Found installation path: ${output}`);
const pattern = `${output}\\\\MSBuild\\**\\Bin\\msbuild.exe`;
/* eslint-disable @typescript-eslint/promise-function-async */
glob
.create(pattern)
.then(globber => globber.glob())
.then(files => {
var _a;
if (((_a = files) === null || _a === void 0 ? void 0 : _a.length) > 0) {
foundToolPath = files[0];
}
});
/* eslint-enable @typescript-eslint/promise-function-async */
installationPath = data.toString().trim();
core.debug(`Found installation path: ${installationPath}`);
}
};
// execute the find putting the result of the command in the options foundToolPath
yield exec.exec(`"${vswhereToolExe}" ${VSWHERE_EXEC}`, [], options);
let foundToolPath = '';
if (installationPath) {
const pattern = `${installationPath}\\\\MSBuild\\**\\Bin\\msbuild.exe`;
const globber = yield glob.create(pattern);
const files = yield globber.glob();
if (((_a = files) === null || _a === void 0 ? void 0 : _a.length) > 0) {
foundToolPath = files[0];
}
}
if (!foundToolPath) {
core.setFailed('Unable to find msbuild.');
return;

View File

@ -56,31 +56,30 @@ async function run(): Promise<void> {
core.debug(`Full tool exe: ${vswhereToolExe}`)
let foundToolPath = ''
let installationPath = ''
const options: ExecOptions = {}
options.listeners = {
stdout: (data: Buffer) => {
const output = data.toString().trim()
core.debug(`Found installation path: ${output}`)
const pattern = `${output}\\\\MSBuild\\**\\Bin\\msbuild.exe`
/* eslint-disable @typescript-eslint/promise-function-async */
glob
.create(pattern)
.then(globber => globber.glob())
.then(files => {
if (files?.length > 0) {
foundToolPath = files[0]
}
})
/* eslint-enable @typescript-eslint/promise-function-async */
installationPath = data.toString().trim()
core.debug(`Found installation path: ${installationPath}`)
}
}
// execute the find putting the result of the command in the options foundToolPath
await exec.exec(`"${vswhereToolExe}" ${VSWHERE_EXEC}`, [], options)
let foundToolPath = ''
if (installationPath) {
const pattern = `${installationPath}\\\\MSBuild\\**\\Bin\\msbuild.exe`
const globber = await glob.create(pattern)
const files = await globber.glob()
if (files?.length > 0) {
foundToolPath = files[0]
}
}
if (!foundToolPath) {
core.setFailed('Unable to find msbuild.')
return