diff --git a/dist/post_run/index.js b/dist/post_run/index.js index 34fdeef915..291cb3d7c9 100644 --- a/dist/post_run/index.js +++ b/dist/post_run/index.js @@ -2237,7 +2237,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.findLintVersion = exports.stringifyVersion = void 0; const core = __importStar(__webpack_require__(470)); const httpm = __importStar(__webpack_require__(539)); +const fs = __importStar(__webpack_require__(747)); const versionRe = /^v(\d+)\.(\d+)(?:\.(\d+))?$/; +const modVersionRe = /github.com\/golangci\/golangci-lint\s(v.+)/; const parseVersion = (s) => { if (s == "latest" || s == "") { return null; @@ -2279,7 +2281,15 @@ const isLessVersion = (a, b) => { return a.minor < b.minor; }; const getRequestedLintVersion = () => { - const requestedLintVersion = core.getInput(`version`); + let requestedLintVersion = core.getInput(`version`); + if (requestedLintVersion == "") { + const content = fs.readFileSync("go.mod", "utf-8"); + const match = content.match(modVersionRe); + if (match) { + requestedLintVersion = match[1]; + core.info(`Found golangci-lint version '${requestedLintVersion}' in go.mod`); + } + } const parsedRequestedLintVersion = parseVersion(requestedLintVersion); if (parsedRequestedLintVersion == null) { return null; diff --git a/dist/run/index.js b/dist/run/index.js index c00fef61a3..93e61100c4 100644 --- a/dist/run/index.js +++ b/dist/run/index.js @@ -2237,7 +2237,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.findLintVersion = exports.stringifyVersion = void 0; const core = __importStar(__webpack_require__(470)); const httpm = __importStar(__webpack_require__(539)); +const fs = __importStar(__webpack_require__(747)); const versionRe = /^v(\d+)\.(\d+)(?:\.(\d+))?$/; +const modVersionRe = /github.com\/golangci\/golangci-lint\s(v.+)/; const parseVersion = (s) => { if (s == "latest" || s == "") { return null; @@ -2279,7 +2281,15 @@ const isLessVersion = (a, b) => { return a.minor < b.minor; }; const getRequestedLintVersion = () => { - const requestedLintVersion = core.getInput(`version`); + let requestedLintVersion = core.getInput(`version`); + if (requestedLintVersion == "") { + const content = fs.readFileSync("go.mod", "utf-8"); + const match = content.match(modVersionRe); + if (match) { + requestedLintVersion = match[1]; + core.info(`Found golangci-lint version '${requestedLintVersion}' in go.mod`); + } + } const parsedRequestedLintVersion = parseVersion(requestedLintVersion); if (parsedRequestedLintVersion == null) { return null; diff --git a/src/version.ts b/src/version.ts index c06580640d..ba714f646b 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1,5 +1,6 @@ import * as core from "@actions/core" import * as httpm from "@actions/http-client" +import * as fs from "fs" // TODO: make a class export type Version = { @@ -9,6 +10,7 @@ export type Version = { } | null const versionRe = /^v(\d+)\.(\d+)(?:\.(\d+))?$/ +const modVersionRe = /github.com\/golangci\/golangci-lint\s(v.+)/ const parseVersion = (s: string): Version => { if (s == "latest" || s == "") { @@ -56,7 +58,17 @@ const isLessVersion = (a: Version, b: Version): boolean => { } const getRequestedLintVersion = (): Version => { - const requestedLintVersion = core.getInput(`version`) + let requestedLintVersion = core.getInput(`version`) + + if (requestedLintVersion == "") { + const content = fs.readFileSync("go.mod", "utf-8") + const match = content.match(modVersionRe) + if (match) { + requestedLintVersion = match[1] + core.info(`Found golangci-lint version '${requestedLintVersion}' in go.mod`) + } + } + const parsedRequestedLintVersion = parseVersion(requestedLintVersion) if (parsedRequestedLintVersion == null) { return null