This commit is contained in:
Opportunity
2020-07-07 21:53:34 +08:00
Unverified
parent 70a1af86e5
commit bff8013f3d
18 changed files with 200 additions and 181 deletions
+5 -1
View File
@@ -49,7 +49,11 @@ export async function create(repo: Repo, ref: Sha): Promise<string> {
await io.mkdirP(opt.cwd);
await exec('git', ['init'], opt);
await exec('git', ['remote', 'add', 'origin', repoUrl(repo)], opt);
await exec('git', ['fetch', 'origin', '+refs/pull/*:refs/remotes/origin/pull/*', '+refs/heads/*:refs/remotes/origin/*'], opt);
await exec(
'git',
['fetch', 'origin', '+refs/pull/*:refs/remotes/origin/pull/*', '+refs/heads/*:refs/remotes/origin/*'],
opt,
);
await exec('git', ['checkout', ref], opt);
await exec('git', ['submodule', 'update', '--init', '--recursive'], opt);
return opt.cwd;
+3 -1
View File
@@ -12,7 +12,9 @@ export async function unixInstall(version: Version): Promise<void> {
const ver = version.version;
let toolDir = toolCache.find('xmake', ver);
if (!toolDir) {
const sourceDir = await core.group(`download xmake ${String(version)}`, () => git.create(version.repo, version.sha));
const sourceDir = await core.group(`download xmake ${String(version)}`, () =>
git.create(version.repo, version.sha),
);
toolDir = await core.group(`install xmake ${String(version)}`, async () => {
await exec('make', ['build'], { cwd: sourceDir });
const binDir = path.join(os.tmpdir(), `xmake-${version.sha}`);
+6 -2
View File
@@ -284,7 +284,9 @@ describe('selectVersion', () => {
it('should throw for no matched', async () => {
await expect(selectVersion('0.2.3')).rejects.toThrowError('No matched releases of xmake-version 0.2.3');
await expect(selectVersion('v0.2.3')).rejects.toThrowError('No matched releases of xmake-version 0.2.3');
await expect(selectVersion('<0.2.3 > 0.1')).rejects.toThrowError('No matched releases of xmake-version <0.2.3 >=0.2.0');
await expect(selectVersion('<0.2.3 > 0.1')).rejects.toThrowError(
'No matched releases of xmake-version <0.2.3 >=0.2.0',
);
});
it('should return correct version for given', async () => {
await expect(selectVersion('v1.0.1')).resolves.toEqual({
@@ -330,7 +332,9 @@ describe('selectVersion', () => {
});
it('should throw invalid pr', async () => {
await expect(selectVersion('pr@xxx')).rejects.toThrowError('Invalid pull requrest xxx, should be a positive integer');
await expect(selectVersion('pr@xxx')).rejects.toThrowError(
'Invalid pull requrest xxx, should be a positive integer',
);
});
it('should return branch of sha', async () => {
+14 -3
View File
@@ -15,7 +15,13 @@ async function getVersions(repo: Repo): Promise<RefDic> {
}
class VersionImpl implements Version {
constructor(readonly repo: Repo, readonly version: string, readonly sha: Sha, readonly type: Version['type'], toString: string) {
constructor(
readonly repo: Repo,
readonly version: string,
readonly sha: Sha,
readonly type: Version['type'],
toString: string,
) {
this.#string = toString;
}
readonly #string: string;
@@ -80,7 +86,9 @@ async function selectSha(repo: Repo, sha: string): Promise<Version> {
return selectPr(repo, Number.parseInt(pr));
}
}
return Promise.resolve(new VersionImpl(repo, `sha#${shaValue}`, shaValue, 'sha', `commit ${shaValue.substr(0, 8)}`));
return Promise.resolve(
new VersionImpl(repo, `sha#${shaValue}`, shaValue, 'sha', `commit ${shaValue.substr(0, 8)}`),
);
}
export async function selectVersion(version?: string): Promise<Version> {
@@ -123,6 +131,9 @@ export async function selectVersion(version?: string): Promise<Version> {
if (!ret) {
throw new Error(`Invalid input xmake-version ${core.getInput('xmake-version')}`);
}
core.info(`Selected xmake ${String(ret)} (commit: ${ret.sha.substr(0, 8)})` + (repo !== DEFAULT_REPO ? ` of ${repo}` : ''));
core.info(
`Selected xmake ${String(ret)} (commit: ${ret.sha.substr(0, 8)})` +
(repo !== DEFAULT_REPO ? ` of ${repo}` : ''),
);
return ret;
}
+5 -1
View File
@@ -45,7 +45,11 @@ export async function winInstall(version: Version): Promise<void> {
const url = getInstallerUrl(version);
core.info(`downloading from ${url}`);
const file = await toolCache.downloadTool(url);
const exe = path.format({ ...path.parse(file), ext: '.exe', base: undefined });
const exe = path.format({
...path.parse(file),
ext: '.exe',
base: undefined,
});
await io.mv(file, exe);
core.info(`downloaded to ${exe}`);
return exe;