如何将 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 存储库示例。