feat: Add getOS()

This commit is contained in:
peaceiris 2019-09-18 09:59:07 +09:00
parent 4b6109cfb2
commit 86eb62d73e
5 changed files with 35 additions and 26 deletions

17
__tests__/get-os.test.js Normal file
View file

@ -0,0 +1,17 @@
const getOS = require("../lib/get-os");
describe("getOS", () => {
test("test", () => {
expect(getOS("linux")).toBe("Linux");
expect(getOS("darwin")).toBe("macOS");
});
test("test exception", () => {
expect(() => {
getOS("win32");
}).toThrowError("Windows is not supported");
expect(() => {
getOS("centos");
}).toThrowError("centos is not supported");
});
});

View file

@ -1,23 +0,0 @@
const wait = require('./wait');
const process = require('process');
const cp = require('child_process');
const path = require('path');
test('throws invalid number', async() => {
await expect(wait('foo')).rejects.toThrow('milleseconds not a number');
});
test('wait 500 ms', async() => {
const start = new Date();
await wait(500);
const end = new Date();
var delta = Math.abs(end - start);
expect(delta).toBeGreaterThan(450);
});
// shows how the runner will run a javascript action with env / stdout protocol
test('test runs', () => {
process.env['INPUT_MILLISECONDS'] = 500;
const ip = path.join(__dirname, 'index.js');
console.log(cp.execSync(`node ${ip}`).toString());
})

13
lib/get-os.js Normal file
View file

@ -0,0 +1,13 @@
function getOS(platform) {
if (platform === "linux") {
return "Linux";
} else if (platform === "darwin") {
return "macOS";
} else if (platform === "win32") {
throw new Error("Windows is not supported");
} else {
throw new Error(`${platform} is not supported`);
}
}
module.exports = getOS;

View file

@ -2,6 +2,7 @@ const core = require("@actions/core");
const tc = require("@actions/tool-cache"); const tc = require("@actions/tool-cache");
const io = require("@actions/io"); const io = require("@actions/io");
const exec = require("@actions/exec"); const exec = require("@actions/exec");
const getOS = require("./get-os");
const getLatestVersion = require("./get-latest-version"); const getLatestVersion = require("./get-latest-version");
// most @actions toolkit packages have async methods // most @actions toolkit packages have async methods
@ -22,9 +23,10 @@ async function run() {
extendedStr = "extended_"; extendedStr = "extended_";
} }
console.log(`Operating System: ${process.platform}`); const osName = getOS(process.platform);
console.log(`Operating System: ${osName}`);
const hugoName = `hugo_${extendedStr}${hugoVersion}_Linux-64bit`; const hugoName = `hugo_${extendedStr}${hugoVersion}_${osName}-64bit`;
core.debug(`hugoName: ${hugoName}`); core.debug(`hugoName: ${hugoName}`);
const hugoURL = `https://github.com/gohugoio/hugo/releases/download/v${hugoVersion}/${hugoName}.tar.gz`; const hugoURL = `https://github.com/gohugoio/hugo/releases/download/v${hugoVersion}/${hugoName}.tar.gz`;

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{ {
"name": "hugo-action", "name": "hugo-action",
"version": "0.1.0", "version": "2.1.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {