diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..849ddff --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +dist/ diff --git a/.eslintrc.json b/.eslintrc.json index 13c6184..b0963d6 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -15,4 +15,4 @@ }, "rules": { } -} \ No newline at end of file +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 96120f8..5e21113 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,4 +6,4 @@ updates: directory: "/" # Check the npm registry for updates every day (weekdays) schedule: - interval: "daily" \ No newline at end of file + interval: "daily" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6c88555..ff06ce8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,7 +15,7 @@ jobs: - run: npm ci - run: npm test - # test action works running from the graph + # test action works running from the graph test: runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index 28ed554..7e874de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ node_modules/ # Editors -.vscode +.vscode/ +.idea/ +*.iml # Logs logs diff --git a/README.md b/README.md index f324725..df1c931 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,12 @@ +# Create a JavaScript Action

javscript-action status

-# Create a JavaScript Action - Use this template to bootstrap the creation of a JavaScript action.:rocket: -This template includes tests, linting, a validation workflow, publishing, and versioning guidance. +This template includes tests, linting, a validation workflow, publishing, and versioning guidance. If you are new, there's also a simpler introduction. See the [Hello World JavaScript Action](https://github.com/actions/hello-world-javascript-action) @@ -17,12 +16,14 @@ Click the `Use this Template` and provide the new repo details for your action ## Code in Main -Install the dependencies +Install the dependencies + ```bash -$ npm install +npm install ``` -Run the tests :heavy_check_mark: +Run the tests :heavy_check_mark: + ```bash $ npm test @@ -30,7 +31,6 @@ $ npm test ✓ throws invalid number (3ms) ✓ wait 500 ms (504ms) ✓ test runs (95ms) - ... ``` @@ -51,9 +51,9 @@ const core = require('@actions/core'); ... async function run() { - try { + try { ... - } + } catch (error) { core.setFailed(error.message); } @@ -89,15 +89,15 @@ Users shouldn't consume the action from master since that would be latest code a Checkin to the v1 release branch ```bash -$ git checkout -b v1 -$ git commit -a -m "v1 release" +git checkout -b v1 +git commit -a -m "v1 release" ``` ```bash -$ git push origin v1 +git push origin v1 ``` -Your action is now published! :rocket: +Your action is now published! :rocket: See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) diff --git a/action.yml b/action.yml index 110d5ca..e6a0bae 100644 --- a/action.yml +++ b/action.yml @@ -6,7 +6,7 @@ inputs: required: true default: '1000' outputs: - time: # output will be available to future steps + time: # output will be available to future steps description: 'The message to output' runs: using: 'node12' diff --git a/dist/index.js b/dist/index.js index 7c9f0f3..80adac2 100644 --- a/dist/index.js +++ b/dist/index.js @@ -65,22 +65,21 @@ const wait = __webpack_require__(949); // most @actions toolkit packages have async methods async function run() { - try { + try { const ms = core.getInput('milliseconds'); - core.info(`Waiting ${ms} milliseconds ...`) + core.info(`Waiting ${ms} milliseconds ...`); - core.debug((new Date()).toTimeString()) // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true + core.debug((new Date()).toTimeString()); // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true await wait(parseInt(ms)); - core.info((new Date()).toTimeString()) + core.info((new Date()).toTimeString()); core.setOutput('time', new Date().toTimeString()); - } - catch (error) { + } catch (error) { core.setFailed(error.message); } } -run() +run(); /***/ }), @@ -352,15 +351,14 @@ module.exports = require("path"); /***/ 949: /***/ (function(module) { -let wait = function(milliseconds) { - return new Promise((resolve, reject) => { - if (typeof(milliseconds) !== 'number') { - throw new Error('milleseconds not a number'); +let wait = function (milliseconds) { + return new Promise((resolve) => { + if (typeof milliseconds !== 'number') { + throw new Error('milliseconds not a number'); } - setTimeout(() => resolve("done!"), milliseconds) }); -} +}; module.exports = wait; diff --git a/index.js b/index.js index e8c1f05..a0d0379 100644 --- a/index.js +++ b/index.js @@ -4,19 +4,18 @@ const wait = require('./wait'); // most @actions toolkit packages have async methods async function run() { - try { + try { const ms = core.getInput('milliseconds'); - core.info(`Waiting ${ms} milliseconds ...`) + core.info(`Waiting ${ms} milliseconds ...`); - core.debug((new Date()).toTimeString()) // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true + core.debug((new Date()).toTimeString()); // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true await wait(parseInt(ms)); - core.info((new Date()).toTimeString()) + core.info((new Date()).toTimeString()); core.setOutput('time', new Date().toTimeString()); - } - catch (error) { + } catch (error) { core.setFailed(error.message); } } -run() +run(); diff --git a/index.test.js b/index.test.js index a6f1485..55d91bc 100644 --- a/index.test.js +++ b/index.test.js @@ -3,21 +3,21 @@ 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('throws invalid number', async () => { + await expect(wait('foo')).rejects.toThrow('milliseconds 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); +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}`, { env: process.env }).toString()); + process.env['INPUT_MILLISECONDS'] = 500; + const ip = path.join(__dirname, 'index.js'); + console.log(cp.execSync(`node ${ip}`, {env: process.env}).toString()); }) diff --git a/package.json b/package.json index 48295df..b311f40 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "JavaScript Action Template", "main": "index.js", "scripts": { - "lint": "eslint index.js", + "lint": "eslint .", "prepare": "ncc build index.js -o dist --source-map", "test": "jest", "all": "npm run lint && npm run prepare && npm run test" diff --git a/wait.js b/wait.js index b83924d..b504b8c 100644 --- a/wait.js +++ b/wait.js @@ -1,11 +1,10 @@ -let wait = function(milliseconds) { - return new Promise((resolve, reject) => { - if (typeof(milliseconds) !== 'number') { - throw new Error('milleseconds not a number'); +let wait = function (milliseconds) { + return new Promise((resolve) => { + if (typeof milliseconds !== 'number') { + throw new Error('milliseconds not a number'); } - setTimeout(() => resolve("done!"), milliseconds) }); -} +}; module.exports = wait;