如何将 GitHub 动作事件挂钩从 javascript 传递到 bash 文件?
How to pass GitHub action event hook from a javascript to a bash file?
我想创建一个简单的 GitHub 动作,只有 运行 一个 bash 脚本文件,请参阅上一个
问题:
通过此 javascript 操作,我想将值从 GitHub 给定的 JSON 负载传递给 bash-脚本。
这可以用像 exec 命令这样简单的东西来完成吗?
...
exec.exec(`export FILEPATH=${filepath}`)
...
我想做这样的事情,但发现需要的代码比我最初预期的要多得多。因此,虽然这并不简单,但它确实有效,并且会在 bash 脚本运行时阻止操作脚本:
const core = require('@actions/core');
function run() {
try {
// This is just a thin wrapper around bash, and runs a file called "script.sh"
//
// TODO: Change this to run your script instead
//
const script = require('path').resolve(__dirname, 'script.sh');
var child = require('child_process').execFile(script);
child.stdout.on('data', (data) => {
console.log(data.toString());
});
child.on('close', (code) => {
console.log(`child process exited with code ${code}`);
process.exit(code);
});
}
catch (error) {
core.setFailed(error.message);
}
}
run()
很多复杂的事情是处理输出和错误条件。
您可以查看我的 debugger-action 存储库示例。
我想创建一个简单的 GitHub 动作,只有 运行 一个 bash 脚本文件,请参阅上一个
问题:
通过此 javascript 操作,我想将值从 GitHub 给定的 JSON 负载传递给 bash-脚本。
这可以用像 exec 命令这样简单的东西来完成吗?
...
exec.exec(`export FILEPATH=${filepath}`)
...
我想做这样的事情,但发现需要的代码比我最初预期的要多得多。因此,虽然这并不简单,但它确实有效,并且会在 bash 脚本运行时阻止操作脚本:
const core = require('@actions/core');
function run() {
try {
// This is just a thin wrapper around bash, and runs a file called "script.sh"
//
// TODO: Change this to run your script instead
//
const script = require('path').resolve(__dirname, 'script.sh');
var child = require('child_process').execFile(script);
child.stdout.on('data', (data) => {
console.log(data.toString());
});
child.on('close', (code) => {
console.log(`child process exited with code ${code}`);
process.exit(code);
});
}
catch (error) {
core.setFailed(error.message);
}
}
run()
很多复杂的事情是处理输出和错误条件。
您可以查看我的 debugger-action 存储库示例。