feat(version): Support for patch verison (#101)
This commit is to support X.Y.Z version in config. - if X.Y.Z version is passed, honour it 👍 - if X.Y version is passed, keep the same behaviour as it is right now. Closes #98 Signed-off-by: Tam Mach <sayboras@yahoo.com>
This commit is contained in:
parent
90fbd40fc4
commit
a1c5369c06
17
.github/workflows/test.yml
vendored
17
.github/workflows/test.yml
vendored
@ -29,3 +29,20 @@ jobs:
|
||||
version: latest
|
||||
args: --issues-exit-code=0 ./sample/...
|
||||
only-new-issues: true
|
||||
|
||||
# Test with full version vX.Y.Z
|
||||
test-full-version:
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- macos-latest
|
||||
- windows-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ./
|
||||
with:
|
||||
version: v1.28.3
|
||||
args: --issues-exit-code=0 ./sample/...
|
||||
only-new-issues: true
|
||||
|
@ -4,7 +4,7 @@ description: "Official golangci-lint action with line-attached annotations for f
|
||||
author: "golangci"
|
||||
inputs:
|
||||
version:
|
||||
description: "version of golangci-lint to use in form of v1.2 or `latest` to use the latest version"
|
||||
description: "version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version"
|
||||
required: false
|
||||
args:
|
||||
description: "golangci-lint command line arguments"
|
||||
|
15
dist/post_run/index.js
vendored
15
dist/post_run/index.js
vendored
@ -2099,9 +2099,6 @@ const getRequestedLintVersion = () => {
|
||||
if (parsedRequestedLintVersion == null) {
|
||||
return null;
|
||||
}
|
||||
if (parsedRequestedLintVersion.patch !== null) {
|
||||
throw new Error(`requested golangci-lint version '${requestedLintVersion}' was specified with the patch version, need specify only minor version`);
|
||||
}
|
||||
if (isLessVersion(parsedRequestedLintVersion, minVersion)) {
|
||||
throw new Error(`requested golangci-lint version '${requestedLintVersion}' isn't supported: we support only ${exports.stringifyVersion(minVersion)} and later versions`);
|
||||
}
|
||||
@ -2128,13 +2125,23 @@ const getConfig = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||
function findLintVersion() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
core.info(`Finding needed golangci-lint version...`);
|
||||
const reqLintVersion = getRequestedLintVersion();
|
||||
// if the patched version is passed, just use it
|
||||
if ((reqLintVersion === null || reqLintVersion === void 0 ? void 0 : reqLintVersion.major) !== null && (reqLintVersion === null || reqLintVersion === void 0 ? void 0 : reqLintVersion.minor) != null && (reqLintVersion === null || reqLintVersion === void 0 ? void 0 : reqLintVersion.patch) !== null) {
|
||||
return new Promise((resolve) => {
|
||||
const versionWithoutV = `${reqLintVersion.major}.${reqLintVersion.minor}.${reqLintVersion.patch}`;
|
||||
resolve({
|
||||
TargetVersion: `v${versionWithoutV}`,
|
||||
AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-amd64.tar.gz`,
|
||||
});
|
||||
});
|
||||
}
|
||||
const startedAt = Date.now();
|
||||
const config = yield getConfig();
|
||||
if (!config.MinorVersionToConfig) {
|
||||
core.warning(JSON.stringify(config));
|
||||
throw new Error(`invalid config: no MinorVersionToConfig field`);
|
||||
}
|
||||
const reqLintVersion = getRequestedLintVersion();
|
||||
const versionConfig = config.MinorVersionToConfig[exports.stringifyVersion(reqLintVersion)];
|
||||
if (!versionConfig) {
|
||||
throw new Error(`requested golangci-lint version '${exports.stringifyVersion(reqLintVersion)}' doesn't exist`);
|
||||
|
15
dist/run/index.js
vendored
15
dist/run/index.js
vendored
@ -2099,9 +2099,6 @@ const getRequestedLintVersion = () => {
|
||||
if (parsedRequestedLintVersion == null) {
|
||||
return null;
|
||||
}
|
||||
if (parsedRequestedLintVersion.patch !== null) {
|
||||
throw new Error(`requested golangci-lint version '${requestedLintVersion}' was specified with the patch version, need specify only minor version`);
|
||||
}
|
||||
if (isLessVersion(parsedRequestedLintVersion, minVersion)) {
|
||||
throw new Error(`requested golangci-lint version '${requestedLintVersion}' isn't supported: we support only ${exports.stringifyVersion(minVersion)} and later versions`);
|
||||
}
|
||||
@ -2128,13 +2125,23 @@ const getConfig = () => __awaiter(void 0, void 0, void 0, function* () {
|
||||
function findLintVersion() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
core.info(`Finding needed golangci-lint version...`);
|
||||
const reqLintVersion = getRequestedLintVersion();
|
||||
// if the patched version is passed, just use it
|
||||
if ((reqLintVersion === null || reqLintVersion === void 0 ? void 0 : reqLintVersion.major) !== null && (reqLintVersion === null || reqLintVersion === void 0 ? void 0 : reqLintVersion.minor) != null && (reqLintVersion === null || reqLintVersion === void 0 ? void 0 : reqLintVersion.patch) !== null) {
|
||||
return new Promise((resolve) => {
|
||||
const versionWithoutV = `${reqLintVersion.major}.${reqLintVersion.minor}.${reqLintVersion.patch}`;
|
||||
resolve({
|
||||
TargetVersion: `v${versionWithoutV}`,
|
||||
AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-amd64.tar.gz`,
|
||||
});
|
||||
});
|
||||
}
|
||||
const startedAt = Date.now();
|
||||
const config = yield getConfig();
|
||||
if (!config.MinorVersionToConfig) {
|
||||
core.warning(JSON.stringify(config));
|
||||
throw new Error(`invalid config: no MinorVersionToConfig field`);
|
||||
}
|
||||
const reqLintVersion = getRequestedLintVersion();
|
||||
const versionConfig = config.MinorVersionToConfig[exports.stringifyVersion(reqLintVersion)];
|
||||
if (!versionConfig) {
|
||||
throw new Error(`requested golangci-lint version '${exports.stringifyVersion(reqLintVersion)}' doesn't exist`);
|
||||
|
@ -16,7 +16,8 @@
|
||||
"format": "prettier --write **/*.ts",
|
||||
"format-check": "prettier --check **/*.ts",
|
||||
"all": "npm run prepare-deps && npm run build && npm run format-check && npm run lint",
|
||||
"local": "npm run build && act -j test -b"
|
||||
"local": "npm run build && act -j test -b",
|
||||
"local-full-version": "npm run build && act -j test-full-version -b"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -61,11 +61,6 @@ const getRequestedLintVersion = (): Version => {
|
||||
if (parsedRequestedLintVersion == null) {
|
||||
return null
|
||||
}
|
||||
if (parsedRequestedLintVersion.patch !== null) {
|
||||
throw new Error(
|
||||
`requested golangci-lint version '${requestedLintVersion}' was specified with the patch version, need specify only minor version`
|
||||
)
|
||||
}
|
||||
if (isLessVersion(parsedRequestedLintVersion, minVersion)) {
|
||||
throw new Error(
|
||||
`requested golangci-lint version '${requestedLintVersion}' isn't supported: we support only ${stringifyVersion(
|
||||
@ -109,6 +104,17 @@ const getConfig = async (): Promise<Config> => {
|
||||
|
||||
export async function findLintVersion(): Promise<VersionConfig> {
|
||||
core.info(`Finding needed golangci-lint version...`)
|
||||
const reqLintVersion = getRequestedLintVersion()
|
||||
// if the patched version is passed, just use it
|
||||
if (reqLintVersion?.major !== null && reqLintVersion?.minor != null && reqLintVersion?.patch !== null) {
|
||||
return new Promise((resolve) => {
|
||||
const versionWithoutV = `${reqLintVersion.major}.${reqLintVersion.minor}.${reqLintVersion.patch}`
|
||||
resolve({
|
||||
TargetVersion: `v${versionWithoutV}`,
|
||||
AssetURL: `https://github.com/golangci/golangci-lint/releases/download/v${versionWithoutV}/golangci-lint-${versionWithoutV}-linux-amd64.tar.gz`,
|
||||
})
|
||||
})
|
||||
}
|
||||
const startedAt = Date.now()
|
||||
|
||||
const config = await getConfig()
|
||||
@ -117,7 +123,6 @@ export async function findLintVersion(): Promise<VersionConfig> {
|
||||
throw new Error(`invalid config: no MinorVersionToConfig field`)
|
||||
}
|
||||
|
||||
const reqLintVersion = getRequestedLintVersion()
|
||||
const versionConfig = config.MinorVersionToConfig[stringifyVersion(reqLintVersion)]
|
||||
if (!versionConfig) {
|
||||
throw new Error(`requested golangci-lint version '${stringifyVersion(reqLintVersion)}' doesn't exist`)
|
||||
|
Loading…
x
Reference in New Issue
Block a user