renovate/tools/check-git-version.mjs
Michael Kriese e3e286bd01
build: simplify and strict tools (#14154)
Co-authored-by: Jamie Magee <jamie.magee@gmail.com>
2022-02-11 07:51:51 +00:00

30 lines
943 B
JavaScript

import semver from 'semver';
import shell from 'shelljs';
import simpleGit from 'simple-git';
const GIT_MINIMUM_VERSION = '2.33.0';
const git = simpleGit();
// eslint-disable-next-line @typescript-eslint/no-floating-promises
(async () => {
try {
const regex = /\d+\.\d+\.\d+/;
const stdout = await git.raw('--version');
const [gitVersion] = regex.exec(stdout) ?? [];
if (!gitVersion || semver.lt(gitVersion, GIT_MINIMUM_VERSION)) {
if (process.env.CI) {
shell.echo(
`::error ::Minimum Git version ${GIT_MINIMUM_VERSION} is required, found version '${gitVersion}'.`
);
} else {
throw new Error(
`Minimum Git version ${GIT_MINIMUM_VERSION} is required, found version '${gitVersion}'.`
);
}
}
shell.echo('Found git version: ', gitVersion);
process.exit(0);
} catch (err) {
shell.echo('ERROR:', err.message);
process.exit(1);
}
})();