mirror of
https://github.com/actions/javascript-action.git
synced 2025-12-10 12:52:36 +00:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4be183afbd | ||
|
|
53eafced66 | ||
|
|
82c9978d8c | ||
|
|
02d8f06488 | ||
|
|
7e6d5ca343 | ||
|
|
9c3d869495 | ||
|
|
ea496c8572 | ||
|
|
16ddff4fe0 | ||
|
|
89ae381fbe | ||
|
|
81c612ca57 | ||
|
|
5eabdae304 | ||
|
|
5fc9bf9e92 | ||
|
|
c4da6cbeb3 | ||
|
|
33a61e5e78 | ||
|
|
07caa9db18 | ||
|
|
86347f385e | ||
|
|
5cd62f0ad8 | ||
|
|
d080a47b66 | ||
|
|
e4a2aaba52 | ||
|
|
1f8ff94664 | ||
|
|
b2ef94412d | ||
|
|
a2b6fc15fd | ||
|
|
81162dcb01 | ||
|
|
7d08020091 | ||
|
|
6926e6e8e0 |
@@ -2,6 +2,7 @@
|
|||||||
"env": {
|
"env": {
|
||||||
"commonjs": true,
|
"commonjs": true,
|
||||||
"es6": true,
|
"es6": true,
|
||||||
|
"jest": true,
|
||||||
"node": true
|
"node": true
|
||||||
},
|
},
|
||||||
"extends": "eslint:recommended",
|
"extends": "eslint:recommended",
|
||||||
|
|||||||
9
.github/dependabot.yml
vendored
Normal file
9
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
# Enable version updates for npm
|
||||||
|
- package-ecosystem: "npm"
|
||||||
|
# Look for `package.json` and `lock` files in the `root` directory
|
||||||
|
directory: "/"
|
||||||
|
# Check the npm registry for updates every day (weekdays)
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
20
.github/workflows/test.yml
vendored
20
.github/workflows/test.yml
vendored
@@ -1,19 +1,25 @@
|
|||||||
name: "Run JavaScript Action"
|
name: "units-test"
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- 'releases/*' # only run in release distribution branches
|
- 'releases/*'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
# unit tests
|
||||||
|
units:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm test
|
||||||
|
|
||||||
|
# test action works running from the graph
|
||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- run: npm ci
|
|
||||||
- run: npm test
|
|
||||||
- uses: ./
|
- uses: ./
|
||||||
with:
|
with:
|
||||||
milliseconds: 1000
|
milliseconds: 1000
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,6 +1,8 @@
|
|||||||
# comment this out distribution branches
|
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
||||||
|
# Editors
|
||||||
|
.vscode
|
||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
66
README.md
66
README.md
@@ -1,3 +1,8 @@
|
|||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/actions/javascript-action/actions"><img alt="javscript-action status" src="https://github.com/actions/javascript-action/workflows/units-test/badge.svg"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
# Create a JavaScript Action
|
# Create a JavaScript Action
|
||||||
|
|
||||||
Use this template to bootstrap the creation of a JavaScript action.:rocket:
|
Use this template to bootstrap the creation of a JavaScript action.:rocket:
|
||||||
@@ -10,7 +15,7 @@ If you are new, there's also a simpler introduction. See the [Hello World JavaS
|
|||||||
|
|
||||||
Click the `Use this Template` and provide the new repo details for your action
|
Click the `Use this Template` and provide the new repo details for your action
|
||||||
|
|
||||||
## Code in Master
|
## Code in Main
|
||||||
|
|
||||||
Install the dependencies
|
Install the dependencies
|
||||||
```bash
|
```bash
|
||||||
@@ -59,50 +64,51 @@ run()
|
|||||||
|
|
||||||
See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages.
|
See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages.
|
||||||
|
|
||||||
## Publish to a distribution branch
|
## Package for distribution
|
||||||
|
|
||||||
Actions are run from GitHub repos. We will create a releases branch and only checkin production modules (core in this case).
|
GitHub Actions will run the entry point from the action.yml. Packaging assembles the code into one file that can be checked in to Git, enabling fast and reliable execution and preventing the need to check in node_modules.
|
||||||
|
|
||||||
|
Actions are run from GitHub repos. Packaging the action will create a packaged action in the dist folder.
|
||||||
|
|
||||||
|
Run prepare
|
||||||
|
|
||||||
Comment out node_modules in .gitignore and create a releases/v1 branch
|
|
||||||
```bash
|
```bash
|
||||||
# comment this out distribution branches
|
npm run prepare
|
||||||
# node_modules/
|
```
|
||||||
|
|
||||||
|
Since the packaged index.js is run from the dist folder.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git add dist
|
||||||
|
```
|
||||||
|
|
||||||
|
## Create a release branch
|
||||||
|
|
||||||
|
Users shouldn't consume the action from master since that would be latest code and actions can break compatibility between major versions.
|
||||||
|
|
||||||
|
Checkin to the v1 release branch
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git checkout -b v1
|
||||||
|
$ git commit -a -m "v1 release"
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git checkout -b releases/v1
|
$ git push origin v1
|
||||||
$ git commit -a -m "prod dependencies"
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm prune --production
|
|
||||||
$ git add node_modules
|
|
||||||
$ git commit -a -m "prod dependencies"
|
|
||||||
$ git push origin releases/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)
|
See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md)
|
||||||
|
|
||||||
## Validate
|
## Usage
|
||||||
|
|
||||||
You can now validate the action by referencing the releases/v1 branch
|
You can now consume the action by referencing the v1 branch
|
||||||
|
|
||||||
```yaml
|
|
||||||
uses: actions/javascript-action@releases/v1
|
|
||||||
with:
|
|
||||||
milliseconds: 1000
|
|
||||||
```
|
|
||||||
|
|
||||||
See the [actions tab](https://github.com/actions/javascript-action/actions) for runs of this action! :rocket:
|
|
||||||
|
|
||||||
## Usage:
|
|
||||||
|
|
||||||
After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and tested action
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
uses: actions/javascript-action@v1
|
uses: actions/javascript-action@v1
|
||||||
with:
|
with:
|
||||||
milliseconds: 1000
|
milliseconds: 1000
|
||||||
```
|
```
|
||||||
|
|
||||||
|
See the [actions tab](https://github.com/actions/javascript-action/actions) for runs of this action! :rocket:
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ outputs:
|
|||||||
description: 'The message to output'
|
description: 'The message to output'
|
||||||
runs:
|
runs:
|
||||||
using: 'node12'
|
using: 'node12'
|
||||||
main: 'index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
371
dist/index.js
vendored
Normal file
371
dist/index.js
vendored
Normal file
@@ -0,0 +1,371 @@
|
|||||||
|
require('./sourcemap-register.js');module.exports =
|
||||||
|
/******/ (function(modules, runtime) { // webpackBootstrap
|
||||||
|
/******/ "use strict";
|
||||||
|
/******/ // The module cache
|
||||||
|
/******/ var installedModules = {};
|
||||||
|
/******/
|
||||||
|
/******/ // The require function
|
||||||
|
/******/ function __webpack_require__(moduleId) {
|
||||||
|
/******/
|
||||||
|
/******/ // Check if module is in cache
|
||||||
|
/******/ if(installedModules[moduleId]) {
|
||||||
|
/******/ return installedModules[moduleId].exports;
|
||||||
|
/******/ }
|
||||||
|
/******/ // Create a new module (and put it into the cache)
|
||||||
|
/******/ var module = installedModules[moduleId] = {
|
||||||
|
/******/ i: moduleId,
|
||||||
|
/******/ l: false,
|
||||||
|
/******/ exports: {}
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ var threw = true;
|
||||||
|
/******/ try {
|
||||||
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||||
|
/******/ threw = false;
|
||||||
|
/******/ } finally {
|
||||||
|
/******/ if(threw) delete installedModules[moduleId];
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // Flag the module as loaded
|
||||||
|
/******/ module.l = true;
|
||||||
|
/******/
|
||||||
|
/******/ // Return the exports of the module
|
||||||
|
/******/ return module.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ __webpack_require__.ab = __dirname + "/";
|
||||||
|
/******/
|
||||||
|
/******/ // the startup function
|
||||||
|
/******/ function startup() {
|
||||||
|
/******/ // Load entry module and return exports
|
||||||
|
/******/ return __webpack_require__(104);
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // run startup
|
||||||
|
/******/ return startup();
|
||||||
|
/******/ })
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ ({
|
||||||
|
|
||||||
|
/***/ 87:
|
||||||
|
/***/ (function(module) {
|
||||||
|
|
||||||
|
module.exports = require("os");
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 104:
|
||||||
|
/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) {
|
||||||
|
|
||||||
|
const core = __webpack_require__(470);
|
||||||
|
const wait = __webpack_require__(949);
|
||||||
|
|
||||||
|
|
||||||
|
// most @actions toolkit packages have async methods
|
||||||
|
async function run() {
|
||||||
|
try {
|
||||||
|
const ms = core.getInput('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
|
||||||
|
await wait(parseInt(ms));
|
||||||
|
core.info((new Date()).toTimeString())
|
||||||
|
|
||||||
|
core.setOutput('time', new Date().toTimeString());
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
core.setFailed(error.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run()
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 431:
|
||||||
|
/***/ (function(__unusedmodule, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const os = __webpack_require__(87);
|
||||||
|
/**
|
||||||
|
* Commands
|
||||||
|
*
|
||||||
|
* Command Format:
|
||||||
|
* ##[name key=value;key=value]message
|
||||||
|
*
|
||||||
|
* Examples:
|
||||||
|
* ##[warning]This is the user warning message
|
||||||
|
* ##[set-secret name=mypassword]definitelyNotAPassword!
|
||||||
|
*/
|
||||||
|
function issueCommand(command, properties, message) {
|
||||||
|
const cmd = new Command(command, properties, message);
|
||||||
|
process.stdout.write(cmd.toString() + os.EOL);
|
||||||
|
}
|
||||||
|
exports.issueCommand = issueCommand;
|
||||||
|
function issue(name, message = '') {
|
||||||
|
issueCommand(name, {}, message);
|
||||||
|
}
|
||||||
|
exports.issue = issue;
|
||||||
|
const CMD_STRING = '::';
|
||||||
|
class Command {
|
||||||
|
constructor(command, properties, message) {
|
||||||
|
if (!command) {
|
||||||
|
command = 'missing.command';
|
||||||
|
}
|
||||||
|
this.command = command;
|
||||||
|
this.properties = properties;
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
toString() {
|
||||||
|
let cmdStr = CMD_STRING + this.command;
|
||||||
|
if (this.properties && Object.keys(this.properties).length > 0) {
|
||||||
|
cmdStr += ' ';
|
||||||
|
for (const key in this.properties) {
|
||||||
|
if (this.properties.hasOwnProperty(key)) {
|
||||||
|
const val = this.properties[key];
|
||||||
|
if (val) {
|
||||||
|
// safely append the val - avoid blowing up when attempting to
|
||||||
|
// call .replace() if message is not a string for some reason
|
||||||
|
cmdStr += `${key}=${escape(`${val || ''}`)},`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cmdStr += CMD_STRING;
|
||||||
|
// safely append the message - avoid blowing up when attempting to
|
||||||
|
// call .replace() if message is not a string for some reason
|
||||||
|
const message = `${this.message || ''}`;
|
||||||
|
cmdStr += escapeData(message);
|
||||||
|
return cmdStr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function escapeData(s) {
|
||||||
|
return s.replace(/\r/g, '%0D').replace(/\n/g, '%0A');
|
||||||
|
}
|
||||||
|
function escape(s) {
|
||||||
|
return s
|
||||||
|
.replace(/\r/g, '%0D')
|
||||||
|
.replace(/\n/g, '%0A')
|
||||||
|
.replace(/]/g, '%5D')
|
||||||
|
.replace(/;/g, '%3B');
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=command.js.map
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 470:
|
||||||
|
/***/ (function(__unusedmodule, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const command_1 = __webpack_require__(431);
|
||||||
|
const os = __webpack_require__(87);
|
||||||
|
const path = __webpack_require__(622);
|
||||||
|
/**
|
||||||
|
* The code to exit an action
|
||||||
|
*/
|
||||||
|
var ExitCode;
|
||||||
|
(function (ExitCode) {
|
||||||
|
/**
|
||||||
|
* A code indicating that the action was successful
|
||||||
|
*/
|
||||||
|
ExitCode[ExitCode["Success"] = 0] = "Success";
|
||||||
|
/**
|
||||||
|
* A code indicating that the action was a failure
|
||||||
|
*/
|
||||||
|
ExitCode[ExitCode["Failure"] = 1] = "Failure";
|
||||||
|
})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
// Variables
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* sets env variable for this action and future actions in the job
|
||||||
|
* @param name the name of the variable to set
|
||||||
|
* @param val the value of the variable
|
||||||
|
*/
|
||||||
|
function exportVariable(name, val) {
|
||||||
|
process.env[name] = val;
|
||||||
|
command_1.issueCommand('set-env', { name }, val);
|
||||||
|
}
|
||||||
|
exports.exportVariable = exportVariable;
|
||||||
|
/**
|
||||||
|
* exports the variable and registers a secret which will get masked from logs
|
||||||
|
* @param name the name of the variable to set
|
||||||
|
* @param val value of the secret
|
||||||
|
*/
|
||||||
|
function exportSecret(name, val) {
|
||||||
|
exportVariable(name, val);
|
||||||
|
// the runner will error with not implemented
|
||||||
|
// leaving the function but raising the error earlier
|
||||||
|
command_1.issueCommand('set-secret', {}, val);
|
||||||
|
throw new Error('Not implemented.');
|
||||||
|
}
|
||||||
|
exports.exportSecret = exportSecret;
|
||||||
|
/**
|
||||||
|
* Prepends inputPath to the PATH (for this action and future actions)
|
||||||
|
* @param inputPath
|
||||||
|
*/
|
||||||
|
function addPath(inputPath) {
|
||||||
|
command_1.issueCommand('add-path', {}, inputPath);
|
||||||
|
process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
|
||||||
|
}
|
||||||
|
exports.addPath = addPath;
|
||||||
|
/**
|
||||||
|
* Gets the value of an input. The value is also trimmed.
|
||||||
|
*
|
||||||
|
* @param name name of the input to get
|
||||||
|
* @param options optional. See InputOptions.
|
||||||
|
* @returns string
|
||||||
|
*/
|
||||||
|
function getInput(name, options) {
|
||||||
|
const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
|
||||||
|
if (options && options.required && !val) {
|
||||||
|
throw new Error(`Input required and not supplied: ${name}`);
|
||||||
|
}
|
||||||
|
return val.trim();
|
||||||
|
}
|
||||||
|
exports.getInput = getInput;
|
||||||
|
/**
|
||||||
|
* Sets the value of an output.
|
||||||
|
*
|
||||||
|
* @param name name of the output to set
|
||||||
|
* @param value value to store
|
||||||
|
*/
|
||||||
|
function setOutput(name, value) {
|
||||||
|
command_1.issueCommand('set-output', { name }, value);
|
||||||
|
}
|
||||||
|
exports.setOutput = setOutput;
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
// Results
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* Sets the action status to failed.
|
||||||
|
* When the action exits it will be with an exit code of 1
|
||||||
|
* @param message add error issue message
|
||||||
|
*/
|
||||||
|
function setFailed(message) {
|
||||||
|
process.exitCode = ExitCode.Failure;
|
||||||
|
error(message);
|
||||||
|
}
|
||||||
|
exports.setFailed = setFailed;
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
// Logging Commands
|
||||||
|
//-----------------------------------------------------------------------
|
||||||
|
/**
|
||||||
|
* Writes debug message to user log
|
||||||
|
* @param message debug message
|
||||||
|
*/
|
||||||
|
function debug(message) {
|
||||||
|
command_1.issueCommand('debug', {}, message);
|
||||||
|
}
|
||||||
|
exports.debug = debug;
|
||||||
|
/**
|
||||||
|
* Adds an error issue
|
||||||
|
* @param message error issue message
|
||||||
|
*/
|
||||||
|
function error(message) {
|
||||||
|
command_1.issue('error', message);
|
||||||
|
}
|
||||||
|
exports.error = error;
|
||||||
|
/**
|
||||||
|
* Adds an warning issue
|
||||||
|
* @param message warning issue message
|
||||||
|
*/
|
||||||
|
function warning(message) {
|
||||||
|
command_1.issue('warning', message);
|
||||||
|
}
|
||||||
|
exports.warning = warning;
|
||||||
|
/**
|
||||||
|
* Writes info to log with console.log.
|
||||||
|
* @param message info message
|
||||||
|
*/
|
||||||
|
function info(message) {
|
||||||
|
process.stdout.write(message + os.EOL);
|
||||||
|
}
|
||||||
|
exports.info = info;
|
||||||
|
/**
|
||||||
|
* Begin an output group.
|
||||||
|
*
|
||||||
|
* Output until the next `groupEnd` will be foldable in this group
|
||||||
|
*
|
||||||
|
* @param name The name of the output group
|
||||||
|
*/
|
||||||
|
function startGroup(name) {
|
||||||
|
command_1.issue('group', name);
|
||||||
|
}
|
||||||
|
exports.startGroup = startGroup;
|
||||||
|
/**
|
||||||
|
* End an output group.
|
||||||
|
*/
|
||||||
|
function endGroup() {
|
||||||
|
command_1.issue('endgroup');
|
||||||
|
}
|
||||||
|
exports.endGroup = endGroup;
|
||||||
|
/**
|
||||||
|
* Wrap an asynchronous function call in a group.
|
||||||
|
*
|
||||||
|
* Returns the same type as the function itself.
|
||||||
|
*
|
||||||
|
* @param name The name of the group
|
||||||
|
* @param fn The function to wrap in the group
|
||||||
|
*/
|
||||||
|
function group(name, fn) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
startGroup(name);
|
||||||
|
let result;
|
||||||
|
try {
|
||||||
|
result = yield fn();
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
endGroup();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
exports.group = group;
|
||||||
|
//# sourceMappingURL=core.js.map
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 622:
|
||||||
|
/***/ (function(module) {
|
||||||
|
|
||||||
|
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');
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => resolve("done!"), milliseconds)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = wait;
|
||||||
|
|
||||||
|
|
||||||
|
/***/ })
|
||||||
|
|
||||||
|
/******/ });
|
||||||
|
//# sourceMappingURL=index.js.map
|
||||||
1
dist/index.js.map
vendored
Normal file
1
dist/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
3912
dist/sourcemap-register.js
vendored
Normal file
3912
dist/sourcemap-register.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
8
index.js
8
index.js
@@ -6,11 +6,11 @@ const wait = require('./wait');
|
|||||||
async function run() {
|
async function run() {
|
||||||
try {
|
try {
|
||||||
const ms = core.getInput('milliseconds');
|
const ms = core.getInput('milliseconds');
|
||||||
console.log(`Waiting ${ms} milliseconds ...`)
|
core.info(`Waiting ${ms} milliseconds ...`)
|
||||||
|
|
||||||
core.debug((new Date()).toTimeString())
|
core.debug((new Date()).toTimeString()) // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true
|
||||||
wait(parseInt(ms));
|
await wait(parseInt(ms));
|
||||||
core.debug((new Date()).toTimeString())
|
core.info((new Date()).toTimeString())
|
||||||
|
|
||||||
core.setOutput('time', new Date().toTimeString());
|
core.setOutput('time', new Date().toTimeString());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,5 +19,5 @@ test('wait 500 ms', async() => {
|
|||||||
test('test runs', () => {
|
test('test runs', () => {
|
||||||
process.env['INPUT_MILLISECONDS'] = 500;
|
process.env['INPUT_MILLISECONDS'] = 500;
|
||||||
const ip = path.join(__dirname, 'index.js');
|
const ip = path.join(__dirname, 'index.js');
|
||||||
console.log(cp.execSync(`node ${ip}`).toString());
|
console.log(cp.execSync(`node ${ip}`, { env: process.env }).toString());
|
||||||
})
|
})
|
||||||
|
|||||||
4600
package-lock.json
generated
4600
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@@ -5,7 +5,9 @@
|
|||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint index.js",
|
"lint": "eslint index.js",
|
||||||
"test": "eslint index.js && jest"
|
"prepare": "ncc build index.js -o dist --source-map",
|
||||||
|
"test": "jest",
|
||||||
|
"all": "npm run lint && npm run prepare && npm run test"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -16,7 +18,7 @@
|
|||||||
"Actions",
|
"Actions",
|
||||||
"JavaScript"
|
"JavaScript"
|
||||||
],
|
],
|
||||||
"author": "GitHub",
|
"author": "",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/actions/javascript-action/issues"
|
"url": "https://github.com/actions/javascript-action/issues"
|
||||||
@@ -26,7 +28,8 @@
|
|||||||
"@actions/core": "^1.1.1"
|
"@actions/core": "^1.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^6.3.0",
|
"@zeit/ncc": "^0.22.3",
|
||||||
"jest": "^24.9.0"
|
"eslint": "^7.4.0",
|
||||||
|
"jest": "^26.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user