diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 28c1874..e096270 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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 }}" diff --git a/dist/index.js b/dist/index.js index ff6d07e..660615d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -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; diff --git a/src/main.ts b/src/main.ts index 7faa639..7a98cfd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -56,31 +56,30 @@ async function run(): Promise { 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