Cloud Runner v2 (#310)

This commit is contained in:
Frostebite
2022-02-01 02:31:20 +00:00
committed by GitHub
parent 4e38a84fe7
commit 03ae77dc7c
90 changed files with 162797 additions and 97684 deletions
+17
View File
@@ -0,0 +1,17 @@
import fs from 'fs';
import path from 'path';
import YAML from 'yaml';
export class ActionYamlReader {
private actionYamlParsed: any;
public constructor() {
let filename = `action.yml`;
if (!fs.existsSync(filename)) {
filename = path.join(__dirname, `..`, filename);
}
this.actionYamlParsed = YAML.parse(fs.readFileSync(filename).toString());
}
public GetActionYamlValue(key: string) {
return this.actionYamlParsed.inputs[key]?.description || 'No description found in action.yml';
}
}
+8
View File
@@ -0,0 +1,8 @@
import { GitRepoReader } from './git-repo';
describe(`git repo tests`, () => {
it(`Branch value parsed from CLI to not contain illegal characters`, async () => {
expect(await GitRepoReader.GetBranch()).not.toContain(`\n`);
expect(await GitRepoReader.GetBranch()).not.toContain(` `);
});
});
+20
View File
@@ -0,0 +1,20 @@
import { assert } from 'console';
import System from '../system';
import fs from 'fs';
import { CloudRunnerSystem } from '../cli/remote-client/remote-client-services/cloud-runner-system';
export class GitRepoReader {
static GetSha() {
return '';
}
public static async GetRemote() {
return (await CloudRunnerSystem.Run(`git remote -v`))
.split(' ')[1]
.split('https://github.com/')[1]
.split('.git')[0];
}
public static async GetBranch() {
assert(fs.existsSync(`.git`));
return (await System.run(`git branch`, [], {}, false)).split('*')[1].split(`\n`)[0].replace(/ /g, ``);
}
}
@@ -0,0 +1,9 @@
import { GithubCliReader } from './github-cli';
import * as core from '@actions/core';
describe(`github cli`, () => {
it(`returns`, async () => {
const token = await GithubCliReader.GetGitHubAuthToken();
core.info(token);
});
});
+20
View File
@@ -0,0 +1,20 @@
import { CloudRunnerSystem } from '../cli/remote-client/remote-client-services/cloud-runner-system';
import * as core from '@actions/core';
export class GithubCliReader {
static async GetGitHubAuthToken() {
try {
const authStatus = await CloudRunnerSystem.Run(`gh auth status`, true);
if (authStatus.includes('You are not logged') || authStatus === '') {
return '';
}
return (await CloudRunnerSystem.Run(`gh auth status -t`))
.split(`Token: `)[1]
.replace(/ /g, '')
.replace(/\n/g, '');
} catch (error: any) {
core.info(error || 'Failed to get github auth token from gh cli');
return '';
}
}
}
@@ -0,0 +1,8 @@
import path from 'path';
import fs from 'fs';
import YAML from 'yaml';
export function ReadLicense() {
const pipelineFile = path.join(__dirname, `.github`, `workflows`, `cloud-runner-k8s-pipeline.yml`);
return fs.existsSync(pipelineFile) ? YAML.parse(fs.readFileSync(pipelineFile, 'utf8')).env.UNITY_LICENSE : '';
}