mirror of
https://github.com/threeal/cmake-action.git
synced 2025-04-21 19:11:21 +00:00
feat: add function for getting action inputs (#225)
* feat: add `getInputs` function * feat: specify default input value in `getInputs` function
This commit is contained in:
parent
8f6d01a6d8
commit
30c1178974
140
dist/index.js
generated
vendored
140
dist/index.js
generated
vendored
@ -27685,35 +27685,6 @@ module.exports = parseParams
|
|||||||
/******/ }
|
/******/ }
|
||||||
/******/
|
/******/
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/******/ /* webpack/runtime/compat get default export */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
||||||
/******/ __nccwpck_require__.n = (module) => {
|
|
||||||
/******/ var getter = module && module.__esModule ?
|
|
||||||
/******/ () => (module['default']) :
|
|
||||||
/******/ () => (module);
|
|
||||||
/******/ __nccwpck_require__.d(getter, { a: getter });
|
|
||||||
/******/ return getter;
|
|
||||||
/******/ };
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/define property getters */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ // define getter functions for harmony exports
|
|
||||||
/******/ __nccwpck_require__.d = (exports, definition) => {
|
|
||||||
/******/ for(var key in definition) {
|
|
||||||
/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) {
|
|
||||||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
||||||
/******/ }
|
|
||||||
/******/ }
|
|
||||||
/******/ };
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
||||||
/******/ (() => {
|
|
||||||
/******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
||||||
/******/ })();
|
|
||||||
/******/
|
|
||||||
/******/ /* webpack/runtime/compat */
|
/******/ /* webpack/runtime/compat */
|
||||||
/******/
|
/******/
|
||||||
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = new URL('.', import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/";
|
/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = new URL('.', import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/";
|
||||||
@ -27722,76 +27693,87 @@ module.exports = parseParams
|
|||||||
var __webpack_exports__ = {};
|
var __webpack_exports__ = {};
|
||||||
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
||||||
(() => {
|
(() => {
|
||||||
/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_0__ = __nccwpck_require__(2340);
|
|
||||||
/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nccwpck_require__.n(_actions_core__WEBPACK_IMPORTED_MODULE_0__);
|
// EXTERNAL MODULE: ../../../.yarn/berry/cache/@actions-core-npm-1.10.1-3cb1000b4d-10c0.zip/node_modules/@actions/core/lib/core.js
|
||||||
/* harmony import */ var _actions_exec__WEBPACK_IMPORTED_MODULE_1__ = __nccwpck_require__(4926);
|
var core = __nccwpck_require__(2340);
|
||||||
/* harmony import */ var _actions_exec__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nccwpck_require__.n(_actions_exec__WEBPACK_IMPORTED_MODULE_1__);
|
// EXTERNAL MODULE: ../../../.yarn/berry/cache/@actions-exec-npm-1.1.1-90973d2f96-10c0.zip/node_modules/@actions/exec/lib/exec.js
|
||||||
/* harmony import */ var _actions_io__WEBPACK_IMPORTED_MODULE_2__ = __nccwpck_require__(1793);
|
var exec = __nccwpck_require__(4926);
|
||||||
/* harmony import */ var _actions_io__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__nccwpck_require__.n(_actions_io__WEBPACK_IMPORTED_MODULE_2__);
|
// EXTERNAL MODULE: ../../../.yarn/berry/cache/@actions-io-npm-1.1.3-82d1cf012b-10c0.zip/node_modules/@actions/io/lib/io.js
|
||||||
|
var io = __nccwpck_require__(1793);
|
||||||
|
;// CONCATENATED MODULE: ./src/inputs.ts
|
||||||
|
|
||||||
|
function getInputs() {
|
||||||
|
return {
|
||||||
|
sourceDir: (0,core.getInput)("source-dir") || ".",
|
||||||
|
buildDir: (0,core.getInput)("build-dir") || "build",
|
||||||
|
generator: (0,core.getInput)("generator"),
|
||||||
|
cCompiler: (0,core.getInput)("c-compiler"),
|
||||||
|
cxxCompiler: (0,core.getInput)("cxx-compiler"),
|
||||||
|
cFlags: (0,core.getMultilineInput)("c-flags").join(" "),
|
||||||
|
cxxFlags: (0,core.getMultilineInput)("cxx-flags").join(" "),
|
||||||
|
options: (0,core.getMultilineInput)("options").flatMap((opts) => opts.split(" ")),
|
||||||
|
args: (0,core.getMultilineInput)("args").flatMap((args) => args.split(" ")),
|
||||||
|
runBuild: (0,core.getBooleanInput)("run-build"),
|
||||||
|
buildArgs: (0,core.getMultilineInput)("build-args").flatMap((args) => args.split(" ")),
|
||||||
|
testArgs: (0,core.getMultilineInput)("test-args").flatMap((args) => args.split(" ")),
|
||||||
|
runTest: (0,core.getBooleanInput)("run-test"),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
;// CONCATENATED MODULE: ./src/index.ts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
const sourceDir = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput("source-dir");
|
const inputs = getInputs();
|
||||||
const buildDir = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput("build-dir");
|
const configureArgs = [inputs.sourceDir, "-B", inputs.buildDir];
|
||||||
const configureArgs = [sourceDir || ".", "-B", buildDir || "build"];
|
if (inputs.generator) {
|
||||||
const generator = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput("generator");
|
configureArgs.push(...["-G", inputs.generator]);
|
||||||
if (generator)
|
}
|
||||||
configureArgs.push(...["-G", generator]);
|
if (inputs.generator.match(/ninja/gi) && !(await (0,io.which)("ninja"))) {
|
||||||
if (generator.match(/ninja/gi) && !(await (0,_actions_io__WEBPACK_IMPORTED_MODULE_2__.which)("ninja"))) {
|
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
case "linux":
|
case "linux":
|
||||||
await (0,_actions_exec__WEBPACK_IMPORTED_MODULE_1__.exec)("sudo", ["apt", "install", "-y", "ninja-build"]);
|
await (0,exec.exec)("sudo", ["apt", "install", "-y", "ninja-build"]);
|
||||||
break;
|
break;
|
||||||
case "darwin":
|
case "darwin":
|
||||||
await (0,_actions_exec__WEBPACK_IMPORTED_MODULE_1__.exec)("brew", ["install", "ninja"]);
|
await (0,exec.exec)("brew", ["install", "ninja"]);
|
||||||
break;
|
break;
|
||||||
case "win32":
|
case "win32":
|
||||||
await (0,_actions_exec__WEBPACK_IMPORTED_MODULE_1__.exec)("choco", ["install", "ninja"]);
|
await (0,exec.exec)("choco", ["install", "ninja"]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const cCompiler = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput("c-compiler");
|
if (inputs.cCompiler) {
|
||||||
if (cCompiler)
|
configureArgs.push("-DCMAKE_C_COMPILER=" + inputs.cCompiler);
|
||||||
configureArgs.push("-DCMAKE_C_COMPILER=" + cCompiler);
|
|
||||||
const cxxCompiler = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput("cxx-compiler");
|
|
||||||
if (cxxCompiler)
|
|
||||||
configureArgs.push("-DCMAKE_CXX_COMPILER=" + cxxCompiler);
|
|
||||||
const cFlags = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getMultilineInput("c-flags").join(" ");
|
|
||||||
if (cFlags)
|
|
||||||
configureArgs.push("-DCMAKE_C_FLAGS=" + cFlags);
|
|
||||||
const cxxFlags = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getMultilineInput("cxx-flags").join(" ");
|
|
||||||
if (cxxFlags)
|
|
||||||
configureArgs.push("-DCMAKE_CXX_FLAGS=" + cxxFlags);
|
|
||||||
const options = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getMultilineInput("options")
|
|
||||||
.flatMap((opts) => opts.split(" "))
|
|
||||||
.map((opt) => "-D" + opt);
|
|
||||||
configureArgs.push(...options);
|
|
||||||
const args = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getMultilineInput("args")
|
|
||||||
.flatMap((args) => args.split(" "));
|
|
||||||
configureArgs.push(...args);
|
|
||||||
await (0,_actions_exec__WEBPACK_IMPORTED_MODULE_1__.exec)("cmake", configureArgs);
|
|
||||||
_actions_core__WEBPACK_IMPORTED_MODULE_0__.setOutput("build-dir", buildDir || "build");
|
|
||||||
const runBuild = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getBooleanInput("run-build");
|
|
||||||
const runTest = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getBooleanInput("run-test");
|
|
||||||
if (runBuild || runTest) {
|
|
||||||
const buildArgs = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getMultilineInput("build-args")
|
|
||||||
.flatMap((args) => args.split(" "));
|
|
||||||
await (0,_actions_exec__WEBPACK_IMPORTED_MODULE_1__.exec)("cmake", ["--build", buildDir || "build", ...buildArgs]);
|
|
||||||
}
|
}
|
||||||
if (runTest) {
|
if (inputs.cxxCompiler) {
|
||||||
const testArgs = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getMultilineInput("test-args")
|
configureArgs.push("-DCMAKE_CXX_COMPILER=" + inputs.cxxCompiler);
|
||||||
.flatMap((args) => args.split(" "));
|
}
|
||||||
await (0,_actions_exec__WEBPACK_IMPORTED_MODULE_1__.exec)("ctest", [
|
if (inputs.cFlags) {
|
||||||
|
configureArgs.push("-DCMAKE_C_FLAGS=" + inputs.cFlags);
|
||||||
|
}
|
||||||
|
if (inputs.cxxFlags) {
|
||||||
|
configureArgs.push("-DCMAKE_CXX_FLAGS=" + inputs.cxxFlags);
|
||||||
|
}
|
||||||
|
configureArgs.push(...inputs.options.map((opt) => "-D" + opt));
|
||||||
|
configureArgs.push(...inputs.args);
|
||||||
|
await (0,exec.exec)("cmake", configureArgs);
|
||||||
|
core.setOutput("build-dir", inputs.buildDir);
|
||||||
|
if (inputs.runBuild || inputs.runTest) {
|
||||||
|
await (0,exec.exec)("cmake", ["--build", inputs.buildDir, ...inputs.buildArgs]);
|
||||||
|
}
|
||||||
|
if (inputs.runTest) {
|
||||||
|
await (0,exec.exec)("ctest", [
|
||||||
"--test-dir",
|
"--test-dir",
|
||||||
buildDir || "build",
|
inputs.buildDir,
|
||||||
"--output-on-failure",
|
"--output-on-failure",
|
||||||
"--no-tests=error",
|
"--no-tests=error",
|
||||||
...testArgs,
|
...inputs.testArgs,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
main().catch((err) => _actions_core__WEBPACK_IMPORTED_MODULE_0__.setFailed(err));
|
main().catch((err) => core.setFailed(err));
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
80
src/index.ts
80
src/index.ts
@ -1,17 +1,18 @@
|
|||||||
import * as core from "@actions/core";
|
import * as core from "@actions/core";
|
||||||
import { exec } from "@actions/exec";
|
import { exec } from "@actions/exec";
|
||||||
import { which } from "@actions/io";
|
import { which } from "@actions/io";
|
||||||
|
import { getInputs } from "./inputs.js";
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
const sourceDir = core.getInput("source-dir");
|
const inputs = getInputs();
|
||||||
const buildDir = core.getInput("build-dir");
|
|
||||||
|
|
||||||
const configureArgs = [sourceDir || ".", "-B", buildDir || "build"];
|
const configureArgs = [inputs.sourceDir, "-B", inputs.buildDir];
|
||||||
|
|
||||||
const generator = core.getInput("generator");
|
if (inputs.generator) {
|
||||||
if (generator) configureArgs.push(...["-G", generator]);
|
configureArgs.push(...["-G", inputs.generator]);
|
||||||
|
}
|
||||||
|
|
||||||
if (generator.match(/ninja/gi) && !(await which("ninja"))) {
|
if (inputs.generator.match(/ninja/gi) && !(await which("ninja"))) {
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
case "linux":
|
case "linux":
|
||||||
await exec("sudo", ["apt", "install", "-y", "ninja-build"]);
|
await exec("sudo", ["apt", "install", "-y", "ninja-build"]);
|
||||||
@ -25,52 +26,39 @@ async function main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const cCompiler = core.getInput("c-compiler");
|
if (inputs.cCompiler) {
|
||||||
if (cCompiler) configureArgs.push("-DCMAKE_C_COMPILER=" + cCompiler);
|
configureArgs.push("-DCMAKE_C_COMPILER=" + inputs.cCompiler);
|
||||||
|
|
||||||
const cxxCompiler = core.getInput("cxx-compiler");
|
|
||||||
if (cxxCompiler) configureArgs.push("-DCMAKE_CXX_COMPILER=" + cxxCompiler);
|
|
||||||
|
|
||||||
const cFlags = core.getMultilineInput("c-flags").join(" ");
|
|
||||||
if (cFlags) configureArgs.push("-DCMAKE_C_FLAGS=" + cFlags);
|
|
||||||
|
|
||||||
const cxxFlags = core.getMultilineInput("cxx-flags").join(" ");
|
|
||||||
if (cxxFlags) configureArgs.push("-DCMAKE_CXX_FLAGS=" + cxxFlags);
|
|
||||||
|
|
||||||
const options = core
|
|
||||||
.getMultilineInput("options")
|
|
||||||
.flatMap((opts) => opts.split(" "))
|
|
||||||
.map((opt) => "-D" + opt);
|
|
||||||
configureArgs.push(...options);
|
|
||||||
|
|
||||||
const args = core
|
|
||||||
.getMultilineInput("args")
|
|
||||||
.flatMap((args) => args.split(" "));
|
|
||||||
configureArgs.push(...args);
|
|
||||||
|
|
||||||
await exec("cmake", configureArgs);
|
|
||||||
core.setOutput("build-dir", buildDir || "build");
|
|
||||||
|
|
||||||
const runBuild = core.getBooleanInput("run-build");
|
|
||||||
const runTest = core.getBooleanInput("run-test");
|
|
||||||
|
|
||||||
if (runBuild || runTest) {
|
|
||||||
const buildArgs = core
|
|
||||||
.getMultilineInput("build-args")
|
|
||||||
.flatMap((args) => args.split(" "));
|
|
||||||
await exec("cmake", ["--build", buildDir || "build", ...buildArgs]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runTest) {
|
if (inputs.cxxCompiler) {
|
||||||
const testArgs = core
|
configureArgs.push("-DCMAKE_CXX_COMPILER=" + inputs.cxxCompiler);
|
||||||
.getMultilineInput("test-args")
|
}
|
||||||
.flatMap((args) => args.split(" "));
|
|
||||||
|
if (inputs.cFlags) {
|
||||||
|
configureArgs.push("-DCMAKE_C_FLAGS=" + inputs.cFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inputs.cxxFlags) {
|
||||||
|
configureArgs.push("-DCMAKE_CXX_FLAGS=" + inputs.cxxFlags);
|
||||||
|
}
|
||||||
|
|
||||||
|
configureArgs.push(...inputs.options.map((opt) => "-D" + opt));
|
||||||
|
configureArgs.push(...inputs.args);
|
||||||
|
|
||||||
|
await exec("cmake", configureArgs);
|
||||||
|
core.setOutput("build-dir", inputs.buildDir);
|
||||||
|
|
||||||
|
if (inputs.runBuild || inputs.runTest) {
|
||||||
|
await exec("cmake", ["--build", inputs.buildDir, ...inputs.buildArgs]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inputs.runTest) {
|
||||||
await exec("ctest", [
|
await exec("ctest", [
|
||||||
"--test-dir",
|
"--test-dir",
|
||||||
buildDir || "build",
|
inputs.buildDir,
|
||||||
"--output-on-failure",
|
"--output-on-failure",
|
||||||
"--no-tests=error",
|
"--no-tests=error",
|
||||||
...testArgs,
|
...inputs.testArgs,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
37
src/inputs.ts
Normal file
37
src/inputs.ts
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import { getBooleanInput, getInput, getMultilineInput } from "@actions/core";
|
||||||
|
|
||||||
|
export interface Inputs {
|
||||||
|
sourceDir: string;
|
||||||
|
buildDir: string;
|
||||||
|
generator: string;
|
||||||
|
cCompiler: string;
|
||||||
|
cxxCompiler: string;
|
||||||
|
cFlags: string;
|
||||||
|
cxxFlags: string;
|
||||||
|
options: string[];
|
||||||
|
args: string[];
|
||||||
|
runBuild: boolean;
|
||||||
|
buildArgs: string[];
|
||||||
|
runTest: boolean;
|
||||||
|
testArgs: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getInputs(): Inputs {
|
||||||
|
return {
|
||||||
|
sourceDir: getInput("source-dir") || ".",
|
||||||
|
buildDir: getInput("build-dir") || "build",
|
||||||
|
generator: getInput("generator"),
|
||||||
|
cCompiler: getInput("c-compiler"),
|
||||||
|
cxxCompiler: getInput("cxx-compiler"),
|
||||||
|
cFlags: getMultilineInput("c-flags").join(" "),
|
||||||
|
cxxFlags: getMultilineInput("cxx-flags").join(" "),
|
||||||
|
options: getMultilineInput("options").flatMap((opts) => opts.split(" ")),
|
||||||
|
args: getMultilineInput("args").flatMap((args) => args.split(" ")),
|
||||||
|
runBuild: getBooleanInput("run-build"),
|
||||||
|
buildArgs: getMultilineInput("build-args").flatMap((args) =>
|
||||||
|
args.split(" "),
|
||||||
|
),
|
||||||
|
testArgs: getMultilineInput("test-args").flatMap((args) => args.split(" ")),
|
||||||
|
runTest: getBooleanInput("run-test"),
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user