Merge pull request #15 from FranzDiebold/feat/update-to-new-export-variable

Update to new exportVariable function.
This commit is contained in:
Franz Diebold 2020-10-05 08:55:57 +02:00 committed by GitHub
commit 04a4ec52ae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 1115 additions and 880 deletions

View file

@ -7,7 +7,7 @@ jobs:
name: Linux Demo name: Linux Demo
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: FranzDiebold/github-env-vars-action@v1.2.0 - uses: FranzDiebold/github-env-vars-action@v1.2.1
- name: Print environment variables exposed by this action - name: Print environment variables exposed by this action
run: | run: |
echo "GITHUB_REPOSITORY_SLUG=$GITHUB_REPOSITORY_SLUG" echo "GITHUB_REPOSITORY_SLUG=$GITHUB_REPOSITORY_SLUG"
@ -30,7 +30,7 @@ jobs:
name: Windows Demo name: Windows Demo
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- uses: FranzDiebold/github-env-vars-action@v1.2.0 - uses: FranzDiebold/github-env-vars-action@v1.2.1
- name: Print environment variables exposed by this action - name: Print environment variables exposed by this action
run: | run: |
echo "GITHUB_REPOSITORY_SLUG=$Env:GITHUB_REPOSITORY_SLUG" echo "GITHUB_REPOSITORY_SLUG=$Env:GITHUB_REPOSITORY_SLUG"
@ -53,7 +53,7 @@ jobs:
name: macOS Demo name: macOS Demo
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: FranzDiebold/github-env-vars-action@v1.2.0 - uses: FranzDiebold/github-env-vars-action@v1.2.1
- name: Print environment variables exposed by this action - name: Print environment variables exposed by this action
run: | run: |
echo "GITHUB_REPOSITORY_SLUG=$GITHUB_REPOSITORY_SLUG" echo "GITHUB_REPOSITORY_SLUG=$GITHUB_REPOSITORY_SLUG"

110
dist/index.js vendored
View file

@ -50,6 +50,68 @@ module.exports = require("os");
/***/ }), /***/ }),
/***/ 124:
/***/ (function(__unusedmodule, exports, __webpack_require__) {
"use strict";
// For internal use, subject to change.
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
const fs = __importStar(__webpack_require__(747));
const os = __importStar(__webpack_require__(87));
const utils_1 = __webpack_require__(127);
function issueCommand(command, message) {
const filePath = process.env[`GITHUB_${command}`];
if (!filePath) {
throw new Error(`Unable to find environment variable for file command ${command}`);
}
if (!fs.existsSync(filePath)) {
throw new Error(`Missing file at path: ${filePath}`);
}
fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {
encoding: 'utf8'
});
}
exports.issueCommand = issueCommand;
//# sourceMappingURL=file-command.js.map
/***/ }),
/***/ 127:
/***/ (function(__unusedmodule, exports) {
"use strict";
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @param input input to sanitize into a string
*/
function toCommandValue(input) {
if (input === null || input === undefined) {
return '';
}
else if (typeof input === 'string' || input instanceof String) {
return input;
}
return JSON.stringify(input);
}
exports.toCommandValue = toCommandValue;
//# sourceMappingURL=utils.js.map
/***/ }),
/***/ 215: /***/ 215:
/***/ (function(__unusedmodule, exports, __webpack_require__) { /***/ (function(__unusedmodule, exports, __webpack_require__) {
@ -64,6 +126,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const os = __importStar(__webpack_require__(87)); const os = __importStar(__webpack_require__(87));
const utils_1 = __webpack_require__(127);
/** /**
* Commands * Commands
* *
@ -117,28 +180,14 @@ class Command {
return cmdStr; return cmdStr;
} }
} }
/**
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @param input input to sanitize into a string
*/
function toCommandValue(input) {
if (input === null || input === undefined) {
return '';
}
else if (typeof input === 'string' || input instanceof String) {
return input;
}
return JSON.stringify(input);
}
exports.toCommandValue = toCommandValue;
function escapeData(s) { function escapeData(s) {
return toCommandValue(s) return utils_1.toCommandValue(s)
.replace(/%/g, '%25') .replace(/%/g, '%25')
.replace(/\r/g, '%0D') .replace(/\r/g, '%0D')
.replace(/\n/g, '%0A'); .replace(/\n/g, '%0A');
} }
function escapeProperty(s) { function escapeProperty(s) {
return toCommandValue(s) return utils_1.toCommandValue(s)
.replace(/%/g, '%25') .replace(/%/g, '%25')
.replace(/\r/g, '%0D') .replace(/\r/g, '%0D')
.replace(/\n/g, '%0A') .replace(/\n/g, '%0A')
@ -305,6 +354,13 @@ module.exports = {
}; };
/***/ }),
/***/ 747:
/***/ (function(module) {
module.exports = require("fs");
/***/ }), /***/ }),
/***/ 827: /***/ 827:
@ -330,6 +386,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = __webpack_require__(215); const command_1 = __webpack_require__(215);
const file_command_1 = __webpack_require__(124);
const utils_1 = __webpack_require__(127);
const os = __importStar(__webpack_require__(87)); const os = __importStar(__webpack_require__(87));
const path = __importStar(__webpack_require__(277)); const path = __importStar(__webpack_require__(277));
/** /**
@ -356,9 +414,17 @@ var ExitCode;
*/ */
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
function exportVariable(name, val) { function exportVariable(name, val) {
const convertedVal = command_1.toCommandValue(val); const convertedVal = utils_1.toCommandValue(val);
process.env[name] = convertedVal; process.env[name] = convertedVal;
command_1.issueCommand('set-env', { name }, convertedVal); const filePath = process.env['GITHUB_ENV'] || '';
if (filePath) {
const delimiter = '_GitHubActionsFileCommandDelimeter_';
const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
file_command_1.issueCommand('ENV', commandValue);
}
else {
command_1.issueCommand('set-env', { name }, convertedVal);
}
} }
exports.exportVariable = exportVariable; exports.exportVariable = exportVariable;
/** /**
@ -374,7 +440,13 @@ exports.setSecret = setSecret;
* @param inputPath * @param inputPath
*/ */
function addPath(inputPath) { function addPath(inputPath) {
command_1.issueCommand('add-path', {}, inputPath); const filePath = process.env['GITHUB_PATH'] || '';
if (filePath) {
file_command_1.issueCommand('PATH', inputPath);
}
else {
command_1.issueCommand('add-path', {}, inputPath);
}
process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
} }
exports.addPath = addPath; exports.addPath = addPath;

1871
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
{ {
"name": "github-env-vars-action", "name": "github-env-vars-action",
"version": "1.2.0", "version": "1.2.1",
"description": "A GitHub Action to expose useful environment variables.", "description": "A GitHub Action to expose useful environment variables.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
@ -23,11 +23,11 @@
}, },
"homepage": "https://github.com/FranzDiebold/github-env-vars-action#readme", "homepage": "https://github.com/FranzDiebold/github-env-vars-action#readme",
"dependencies": { "dependencies": {
"@actions/core": "^1.2.4" "@actions/core": "^1.2.6"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^7.4.0", "eslint": "^7.10.0",
"eslint-config-google": "^0.14.0", "eslint-config-google": "^0.14.0",
"jest": "^26.1.0" "jest": "^26.4.2"
} }
} }