Descreva o bug
Atualmente, minha versão mais recente falha na etapa de lançamento com um erro E2BIG. Eu fiz algumas pesquisas e descobri que isso pode ser devido a alguns motivos, como muitos argumentos de comando (não parece ser o caso aqui) ou textos que são muito grandes.
Acho que pode ser o último, mas não tenho certeza de como depurar o problema.
Vou tentar uma solução temporária e comentar minhas linhas de execução automática , mas todas as sugestões são bem-vindas!
Reproduzir
Tentando descobrir isso agora.
Comportamento esperado
Mencione o arquivo problemático ou não gere um erro
Informações ambientais:
Gitlab CI e Local (máquina arch linux)
Contexto adicional
Não acho que isso seja necessariamente devido ao automóvel. Provavelmente um problema de spawn, mas achei que seria útil postar aqui para qualquer um que se deparar com um problema semelhante no futuro e para ideias de depuração de tempestade cerebral.
Acho que isso pode ser uma falha fatal no plug-in exec
.
E2BIG
significa que havia muitos argumentos para a chamada execSync
. Tenho certeza de que o argumento está falando sobre isso, apenas todas as informações de gancho que passamos por meio das variáveis env ( $ARG0
).
Não tenho certeza se isso é algo que podemos consertar. Pode ter que documentar essa limitação e talvez até adicionar uma opção para não passar as informações contextuais.
Uma solução poderia ser armazenar os argumentos em algum lugar no disco e deixar o comando puxar de lá em vez de um env var. Mas essa é uma grande mudança significativa para o plug-in
Para desbloquear você, este plugin faz a mesma coisa
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", "."]);
});
}
};
Se você puder encontrar uma solução para o E2BIG, isso seria incrível! (ou qualquer outra pessoa que veja este problema)
Definitivamente vou pensar sobre isso, deve haver alguma maneira de contornar isso. Obrigado!
Eu vejo na lista de args execSpawn que passamos process.env
totalmente no topo do contexto automático, talvez a opção que adicionamos poderia especificar para passar apenas vars env auto-específicos?
Eu (um espectador interessado) endosso de todo o coração a solução "armazenar argumentos em um arquivo". Sim, é uma alteração significativa, mas é uma alteração significativa de que você precisa .
@hipstersmoothie
Para desbloquear você, este plugin faz a mesma coisa
Para ser claro, para usar isso, eu apenas salvei em meu repositório (não-Node / NPM / TypeScript) e defino "plugins": ["path/to/file"]
em meu arquivo de configuração, ou há mais do que isso?
Comentários muito úteis
Uma solução poderia ser armazenar os argumentos em algum lugar no disco e deixar o comando puxar de lá em vez de um env var. Mas essa é uma grande mudança significativa para o plug-in
Para desbloquear você, este plugin faz a mesma coisa