-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(action): add multiple input value to allow simultanous deployment
- Loading branch information
Showing
5 changed files
with
201 additions
and
10,984 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -138,7 +138,6 @@ const file_command_1 = __nccwpck_require__(717); | |
const utils_1 = __nccwpck_require__(5278); | ||
const os = __importStar(__nccwpck_require__(2037)); | ||
const path = __importStar(__nccwpck_require__(1017)); | ||
const uuid_1 = __nccwpck_require__(5840); | ||
const oidc_utils_1 = __nccwpck_require__(8041); | ||
/** | ||
* The code to exit an action | ||
|
@@ -168,20 +167,9 @@ function exportVariable(name, val) { | |
process.env[name] = convertedVal; | ||
const filePath = process.env['GITHUB_ENV'] || ''; | ||
if (filePath) { | ||
const delimiter = `ghadelimiter_${uuid_1.v4()}`; | ||
// These should realistically never happen, but just in case someone finds a way to exploit uuid generation let's not allow keys or values that contain the delimiter. | ||
if (name.includes(delimiter)) { | ||
throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); | ||
} | ||
if (convertedVal.includes(delimiter)) { | ||
throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); | ||
} | ||
const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; | ||
file_command_1.issueCommand('ENV', commandValue); | ||
} | ||
else { | ||
command_1.issueCommand('set-env', { name }, convertedVal); | ||
return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); | ||
} | ||
command_1.issueCommand('set-env', { name }, convertedVal); | ||
} | ||
exports.exportVariable = exportVariable; | ||
/** | ||
|
@@ -199,7 +187,7 @@ exports.setSecret = setSecret; | |
function addPath(inputPath) { | ||
const filePath = process.env['GITHUB_PATH'] || ''; | ||
if (filePath) { | ||
file_command_1.issueCommand('PATH', inputPath); | ||
file_command_1.issueFileCommand('PATH', inputPath); | ||
} | ||
else { | ||
command_1.issueCommand('add-path', {}, inputPath); | ||
|
@@ -239,7 +227,10 @@ function getMultilineInput(name, options) { | |
const inputs = getInput(name, options) | ||
.split('\n') | ||
.filter(x => x !== ''); | ||
return inputs; | ||
if (options && options.trimWhitespace === false) { | ||
return inputs; | ||
} | ||
return inputs.map(input => input.trim()); | ||
} | ||
exports.getMultilineInput = getMultilineInput; | ||
/** | ||
|
@@ -272,8 +263,12 @@ exports.getBooleanInput = getBooleanInput; | |
*/ | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
function setOutput(name, value) { | ||
const filePath = process.env['GITHUB_OUTPUT'] || ''; | ||
if (filePath) { | ||
return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); | ||
} | ||
process.stdout.write(os.EOL); | ||
command_1.issueCommand('set-output', { name }, value); | ||
command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); | ||
} | ||
exports.setOutput = setOutput; | ||
/** | ||
|
@@ -402,7 +397,11 @@ exports.group = group; | |
*/ | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
function saveState(name, value) { | ||
command_1.issueCommand('save-state', { name }, value); | ||
const filePath = process.env['GITHUB_STATE'] || ''; | ||
if (filePath) { | ||
return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); | ||
} | ||
command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); | ||
} | ||
exports.saveState = saveState; | ||
/** | ||
|
@@ -467,13 +466,14 @@ var __importStar = (this && this.__importStar) || function (mod) { | |
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", ({ value: true })); | ||
exports.issueCommand = void 0; | ||
exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; | ||
// We use any as a valid input type | ||
/* eslint-disable @typescript-eslint/no-explicit-any */ | ||
const fs = __importStar(__nccwpck_require__(7147)); | ||
const os = __importStar(__nccwpck_require__(2037)); | ||
const uuid_1 = __nccwpck_require__(5840); | ||
const utils_1 = __nccwpck_require__(5278); | ||
function issueCommand(command, message) { | ||
function issueFileCommand(command, message) { | ||
const filePath = process.env[`GITHUB_${command}`]; | ||
if (!filePath) { | ||
throw new Error(`Unable to find environment variable for file command ${command}`); | ||
|
@@ -485,7 +485,22 @@ function issueCommand(command, message) { | |
encoding: 'utf8' | ||
}); | ||
} | ||
exports.issueCommand = issueCommand; | ||
exports.issueFileCommand = issueFileCommand; | ||
function prepareKeyValueMessage(key, value) { | ||
const delimiter = `ghadelimiter_${uuid_1.v4()}`; | ||
const convertedValue = utils_1.toCommandValue(value); | ||
// These should realistically never happen, but just in case someone finds a | ||
// way to exploit uuid generation let's not allow keys or values that contain | ||
// the delimiter. | ||
if (key.includes(delimiter)) { | ||
throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); | ||
} | ||
if (convertedValue.includes(delimiter)) { | ||
throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); | ||
} | ||
return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; | ||
} | ||
exports.prepareKeyValueMessage = prepareKeyValueMessage; | ||
//# sourceMappingURL=file-command.js.map | ||
|
||
/***/ }), | ||
|
@@ -1804,6 +1819,9 @@ module.exports = options | |
const fs = __nccwpck_require__(7147) | ||
const path = __nccwpck_require__(1017) | ||
const os = __nccwpck_require__(2037) | ||
const packageJson = __nccwpck_require__(9968) | ||
|
||
const version = packageJson.version | ||
|
||
const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg | ||
|
||
|
@@ -1847,7 +1865,7 @@ function parse (src) { | |
} | ||
|
||
function _log (message) { | ||
console.log(`[dotenv][DEBUG] ${message}`) | ||
console.log(`[dotenv@${version}][DEBUG] ${message}`) | ||
} | ||
|
||
function _resolveHome (envPath) { | ||
|
@@ -7730,6 +7748,13 @@ c.push(`--${b}--`) | |
return new B(c,{type:"multipart/form-data; boundary="+b})} | ||
|
||
|
||
/***/ }), | ||
|
||
/***/ 9968: | ||
/***/ ((module) => { | ||
|
||
module.exports = JSON.parse('{"_args":[["[email protected]","/workspaces/render-deployment"]],"_from":"[email protected]","_id":"[email protected]","_inBundle":false,"_integrity":"sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==","_location":"/dotenv","_phantomChildren":{},"_requested":{"type":"version","registry":true,"raw":"[email protected]","name":"dotenv","escapedName":"dotenv","rawSpec":"16.0.3","saveSpec":null,"fetchSpec":"16.0.3"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz","_spec":"16.0.3","_where":"/workspaces/render-deployment","bugs":{"url":"https://github.com/motdotla/dotenv/issues"},"description":"Loads environment variables from .env file","devDependencies":{"@types/node":"^17.0.9","decache":"^4.6.1","dtslint":"^3.7.0","sinon":"^12.0.1","standard":"^16.0.4","standard-markdown":"^7.1.0","standard-version":"^9.3.2","tap":"^15.1.6","tar":"^6.1.11","typescript":"^4.5.4"},"engines":{"node":">=12"},"exports":{".":{"require":"./lib/main.js","types":"./lib/main.d.ts","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"homepage":"https://github.com/motdotla/dotenv#readme","keywords":["dotenv","env",".env","environment","variables","config","settings"],"license":"BSD-2-Clause","main":"lib/main.js","name":"dotenv","repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","lint-readme":"standard-markdown","prerelease":"npm test","pretest":"npm run lint && npm run dts-check","release":"standard-version","test":"tap tests/*.js --100 -Rspec"},"types":"lib/main.d.ts","version":"16.0.3"}'); | ||
|
||
/***/ }) | ||
|
||
/******/ }); | ||
|
@@ -10042,6 +10067,9 @@ const run = async () => { | |
return; | ||
} | ||
|
||
const multipleInput = core.getInput('multiple') || process.env.multiple; | ||
const multiple = multipleInput === 'true' ? true : false; | ||
|
||
try { | ||
let res; | ||
let data; | ||
|
@@ -10053,7 +10081,7 @@ const run = async () => { | |
}, | ||
}; | ||
|
||
// check if there is a deployment in progress, and stop | ||
// check if there is a deployment in progress | ||
res = await fetch( | ||
`https://api.render.com/v1/services/${serviceId}/deploys?limit=20`, | ||
{ method: 'GET', ...options } | ||
|
@@ -10070,8 +10098,9 @@ const run = async () => { | |
) | ||
? true | ||
: false; | ||
|
||
if (hasInProgressBuild) { | ||
|
||
// check if multiple is set to false if there is active build | ||
if (!multiple && hasInProgressBuild) { | ||
core.setFailed( | ||
'Your Render Service has an active build in progress. Wait for that to complete before deploying again' | ||
); | ||
|
Oops, something went wrong.