From f13b5a9d938dd51b85e849a0cfb927f20df1a0f9 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Tue, 8 Oct 2024 12:38:10 -0400 Subject: [PATCH] Allow overriding Buf version in PATH This avoids requiring the version of Buf found in the PATH to match the resolved. Fallsback to installing the specified in the toolcache. --- dist/index.js | 11 ++++------- src/installer.ts | 17 ++++++----------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/dist/index.js b/dist/index.js index 8b5b3db..980290f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -45508,14 +45508,11 @@ async function installBuf(github, versionInput) { silent: true, }); const version = bufVersion.stdout.trim(); - core.info(`Using buf (${version}) found in $PATH`); - if (!semver.satisfies(version, requiredVersion)) { - throw new Error(`The version of buf (${version}) does not satisfy the required version (${requiredVersion})`); + if (semver.satisfies(version, requiredVersion) && + (resolvedVersion == "" || semver.eq(version, resolvedVersion))) { + core.info(`Using buf (${version}) found in $PATH`); + return [binName, version]; } - if (resolvedVersion != "" && !semver.eq(version, resolvedVersion)) { - throw new Error(`The version of buf (${version}) does not equal the resolved version (${resolvedVersion})`); - } - return [binName, version]; } if (resolvedVersion === "") { resolvedVersion = await latestVersion(github); diff --git a/src/installer.ts b/src/installer.ts index 9a25803..ea22dd6 100644 --- a/src/installer.ts +++ b/src/installer.ts @@ -46,18 +46,13 @@ export async function installBuf( silent: true, }); const version = bufVersion.stdout.trim(); - core.info(`Using buf (${version}) found in $PATH`); - if (!semver.satisfies(version, requiredVersion)) { - throw new Error( - `The version of buf (${version}) does not satisfy the required version (${requiredVersion})`, - ); + if ( + semver.satisfies(version, requiredVersion) && + (resolvedVersion == "" || semver.eq(version, resolvedVersion)) + ) { + core.info(`Using buf (${version}) found in $PATH`); + return [binName, version]; } - if (resolvedVersion != "" && !semver.eq(version, resolvedVersion)) { - throw new Error( - `The version of buf (${version}) does not equal the resolved version (${resolvedVersion})`, - ); - } - return [binName, version]; } if (resolvedVersion === "") { resolvedVersion = await latestVersion(github);