Auto: 确定 auto-exec spawnSync /bin/sh E2BIG 的原因

创建于 2020-06-12  ·  6评论  ·  资料来源: intuit/auto

描述错误

目前我的最新构建在发布步骤失败,出现 E2BIG错误。 我做了一些研究,发现这可能是由于一些原因造成的,例如许多命令参数(这里似乎不是这种情况)或文本太大。

我觉得可能是后者,但我不确定如何调试问题。

我会尝试临时解决并评论我的自动执行行,但欢迎提出任何建议!

再现

现在就想办法解决这个问题。

预期行为

要么提及麻烦的文件,要么不抛出错误

环境信息:

Gitlab CI & Local(arch linux 机器)

附加上下文

我认为这不一定是由于汽车。 很可能是生成问题,只是想在这里为将来遇到类似问题的任何人发帖,并集思广益调试想法会有所帮助。

bug hacktoberfest

最有用的评论

一个解决方案可能是将 args 存储在磁盘上的某个地方,并让命令从那里提取而不是 env var。 但这对插件来说是一个非常大的突破性变化

解锁你这个插件做同样的事情

const { SEMVER, execPromise, getCurrentBranch } = require("@auto-it/core");

module.exports = class NextCherryPickPlugin {
  constructor() {
    this.name = "update docs";
  }

  /**
   * Setup the plugin
   *
   * <strong i="7">@param</strong> {import('@auto-canary/core').default} auto
   */
  apply(auto) {
    auto.hooks.beforeCommitChangelog.tapPromise(this.name, async (config) => {
      await execPromise("yarn", ["lint:doc:fix"]);
      await execPromise("git", ["add", "."]);
    });
  }
};

所有6条评论

我认为这可能是exec插件的致命缺陷。

E2BIG表示execSync调用的参数过多。 我很确定它所谈论的参数只是我们通过环境变量( $ARG0 )传入的所有钩子信息。

我不确定这是否是我们甚至可以解决的问题。 可能必须记录此限制,甚至可能添加一个选项来放弃传递上下文信息。

一个解决方案可能是将 args 存储在磁盘上的某个地方,并让命令从那里提取而不是 env var。 但这对插件来说是一个非常大的突破性变化

解锁你这个插件做同样的事情

const { SEMVER, execPromise, getCurrentBranch } = require("@auto-it/core");

module.exports = class NextCherryPickPlugin {
  constructor() {
    this.name = "update docs";
  }

  /**
   * Setup the plugin
   *
   * <strong i="7">@param</strong> {import('@auto-canary/core').default} auto
   */
  apply(auto) {
    auto.hooks.beforeCommitChangelog.tapPromise(this.name, async (config) => {
      await execPromise("yarn", ["lint:doc:fix"]);
      await execPromise("git", ["add", "."]);
    });
  }
};

如果您能找到 E2BIG 的解决方案,那就太棒了! (或其他任何看到此问题的人)

我肯定会考虑的,应该有办法解决它。 谢谢!

我在 execSpawn args 列表中看到我们在自动上下文之上完全传递process.env ,也许我们添加的选项可以指定仅传递特定于自动的环境变量?

我(一个感兴趣的旁观者)全心全意支持“将参数存储在文件中”的解决方案。 是的,这是一个重大变化,但这是您需要的重大变化。

@hipstersmoothie

解锁你这个插件做同样的事情

需要明确的是,要使用它,我只需将它保存在我的(非 Node/NPM/TypeScript)存储库中并在我的配置文件中设置"plugins": ["path/to/file"] ,或者还有更多内容吗?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

zephraph picture zephraph  ·  10评论

glambert picture glambert  ·  4评论

theAdhocracy picture theAdhocracy  ·  6评论

zephraph picture zephraph  ·  11评论

bbrinx picture bbrinx  ·  8评论