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); } })();