Fix parseGoVersionFile

This commit is contained in:
jojo43 2022-05-01 11:56:41 +09:00
parent fabe2129ee
commit dbe1872ad4
3 changed files with 18 additions and 16 deletions

View file

@ -797,7 +797,9 @@ exclude example.com/thismodule v1.3.0
await main.run();
expect(logSpy).toHaveBeenCalledWith('Setup go stable version spec 1.14');
expect(logSpy).toHaveBeenCalledWith('Setup go version spec 1.14');
expect(logSpy).toHaveBeenCalledWith('Attempting to download 1.14...');
expect(logSpy).toHaveBeenCalledWith('matching 1.14...');
});
it('reads version from .go-version', async () => {
@ -806,9 +808,9 @@ exclude example.com/thismodule v1.3.0
await main.run();
expect(logSpy).toHaveBeenCalledWith(
'Setup go stable version spec 1.13.0'
);
expect(logSpy).toHaveBeenCalledWith('Setup go version spec 1.13.0');
expect(logSpy).toHaveBeenCalledWith('Attempting to download 1.13.0...');
expect(logSpy).toHaveBeenCalledWith('matching 1.13.0...');
});
it('is overwritten by go-version', async () => {
@ -818,9 +820,9 @@ exclude example.com/thismodule v1.3.0
await main.run();
expect(logSpy).toHaveBeenCalledWith(
'Setup go stable version spec 1.13.1'
);
expect(logSpy).toHaveBeenCalledWith('Setup go version spec 1.13.1');
expect(logSpy).toHaveBeenCalledWith('Attempting to download 1.13.1...');
expect(logSpy).toHaveBeenCalledWith('matching 1.13.1...');
});
it('reports a read failure', async () => {

View file

@ -4,6 +4,7 @@ import * as path from 'path';
import * as semver from 'semver';
import * as httpm from '@actions/http-client';
import * as sys from './system';
import fs from 'fs';
import os from 'os';
type InstallationType = 'dist' | 'manifest';
@ -299,11 +300,13 @@ export function makeSemver(version: string): string {
return fullVersion;
}
export function parseGoVersionFile(contents: string, isMod: boolean): string {
if (!isMod) {
return contents.trim();
export function parseGoVersionFile(versionFilePath: string): string {
const contents = fs.readFileSync(versionFilePath).toString();
if (path.basename(versionFilePath) === 'go.mod') {
const match = contents.match(/^go (\d+(\.\d+)*)/m);
return match ? match[1] : '';
}
const match = contents.match(/^go (\d+(\.\d+)*)/m);
return match ? match[1] : '';
return contents.trim();
}

View file

@ -120,10 +120,7 @@ function resolveVersionInput(): string {
}
if (versionFilePath) {
version = installer.parseGoVersionFile(
fs.readFileSync(versionFilePath).toString(),
path.basename(versionFilePath) === 'go.mod'
);
version = installer.parseGoVersionFile(versionFilePath);
}
return version;