PR Feedback - simplifying action

This commit is contained in:
Derrick Marcey
2019-06-27 13:53:08 -04:00
parent 762d5da203
commit 4fdd5911a6
5 changed files with 17 additions and 70 deletions

View File

@@ -1,51 +1,23 @@
import * as core from '@actions/core';
import * as exec from '@actions/exec';
import * as tc from '@actions/tool-cache';
import * as os from 'os';
import * as path from 'path';
export enum Platform {
Windows,
MacOS,
Linux
}
const IS_WINDOWS = process.platform === 'win32';
export function getPlatform(): Platform {
switch (os.platform()) {
case 'win32':
return Platform.Windows;
case 'darwin':
return Platform.MacOS;
case 'linux':
return Platform.Linux;
default:
throw Error('Platform not recognized');
}
}
interface ActionInputs {
version: string;
addToPath: string;
}
export default async function(inputs: ActionInputs, platform: Platform) {
const installDir: string | null = tc.find('Ruby', inputs.version);
export default async function(version: string) {
const installDir: string | null = tc.find('Ruby', version);
if (!installDir) {
throw new Error(`Version ${inputs.version} not found`);
throw new Error(`Version ${version} not found`);
}
const toolPath: string = path.join(installDir, 'bin');
if (platform !== Platform.Windows) {
if (!IS_WINDOWS) {
// Ruby / Gem heavily use the '#!/usr/bin/ruby' to find ruby, so this task needs to
// replace that version of ruby so all the correct version of ruby gets selected
// replace the default
const dest: string = '/usr/bin/ruby';
exec.exec('sudo ln', ['-sf', path.join(toolPath, 'ruby'), dest]); // replace any existing
}
if (inputs.addToPath === 'true') {
core.addPath(toolPath);
}
}

View File

@@ -1,11 +1,10 @@
import * as core from '@actions/core';
import findRubyVersion, {getPlatform} from './find-ruby';
import findRubyVersion from './find-ruby';
async function run() {
try {
const version = core.getInput('version');
const addToPath = core.getInput('add-to-path');
await findRubyVersion({version, addToPath}, getPlatform());
await findRubyVersion(version);
} catch (error) {
core.setFailed(error.message);
}