Auto: Pergunta - lerna ERR! ENOGIT git HEAD desanexado no Gitlab CI

Criado em 19 abr. 2020  ·  28Comentários  ·  Fonte: intuit/auto

Descreva o bug

Ao executar o shipit, lerna comete erros na última etapa

Isso pode estar mais relacionado a lerna, já que vi os erros relatados algumas vezes, mas gostaria de saber se vocês tiveram alguma sugestão, já que a chamada da lerna está dentro do automático?

EDIT : Testar localmente retorna erros diferentes. Indo para investigar isso mais a fundo e acompanhamento!

bug

Todos 28 comentários

Parece funcionar bem quando executado localmente, mas não no ambiente ci. hum

Primeiro, veja como o auto pode funcionar bem com o GitLab, já que usamos intensamente a API do GitHub. Coisas como pesquisar as solicitações pull, fazer lançamentos e uma série de outras coisas não funcionam como esperado.


Quanto ao problema principal separado: a maioria dos envs de CI não verifica seu código da mesma maneira. Para que auto funcione, é necessária uma visão relativamente completa do repositório git. Muitos envs de CI tentam ser inteligentes e não fazem um checkout completo. Alguns farão um clone superficial (ações do github). Alguns irão pré-mesclar seu branch e verificar um branch tmp (jenkins)

Olhando para seus logs, parece que o GitLab faz uma verificação relativamente completa, mas com o cabeçote destacado (você não está em um branch). Experimente verificar master .

# See what branches are available
git branch -a

# Checkout master
git checkout master

Isso pareceu corrigir o erro, mas agora não está liberando devido a isto : chorar:

Fiz uma pesquisa rápida, mas não consigo descobrir o que causa essa mensagem de erro.

Esse erro vem de auto

https://github.com/intuit/auto/blob/adf4e85590a75a9fd97945b4803f3535b8c45383/packages/core/src/auto.ts#L405

No entanto, pode estar engolindo outro erro. Posso adicionar um log para imprimir nesta função se você precisar

: facepalm: não sei como perdi isso. Seria possível gerar esse erro se um sinalizador verboso fosse definido? Percebi que não poderia fazer isso localmente porque não consigo criar o erro localmente lol

É possível que a bandeira -silent seja --silent ? ou --quiet ? Não tenho certeza para que servem os sinalizadores falsos e silenciosos.

https://gitlab.com/jdalrymple/gitbeaker/-/jobs/518962749#L1391

Oh cara 🤦 Devo ter deletado um -

https://github.com/intuit/auto/pull/1160

Depois de publicado, deve ser bom https://github.com/intuit/auto/pull/1161/files

Outro problema resolvido butttt hehe Alguma outra sugestão?

Você parece ainda estar usando um canário antigo "auto" version: v9.28.2-canary.1160.15021.0 e não a última versão lançada

Ops! acabei de consertar isso. Ainda tendo azar :( Agora com erro: Falha no comando: git merge-base --is-ancestor: cry:

Hmm lendo os logs novamente, é possível que esteja usando o url remoto errado?

ℹ info Using remote: https://gitlab-ci-token:[MASKED]@gitlab.com/jdalrymple/gitbeaker.git

Esse pode realmente ser o problema. O repo está hospedado no github, mas estou usando o gitlab ci para o pipeline. Parece que está inferindo o controle remoto para o qual empurrar, mas inferindo incorretamente. Não tenho certeza de como mudar isso, hmm

Então, resolvi esse erro definindo explicitamente o url remoto. Meio hacky, mas funcionaria por enquanto. Tentando consertar um erro estranho de npm agora . Tão perto :/

Funcionou!!! Tive que definir explicitamente algumas coisas, mas yay! Obrigado pela ajuda!!

Pergunta rápida @hipstersmoothie , para evitar abrir um novo exemplar. O automático lida com a criação de novas versões do github? Ele criou a tag e as notas de versão sem problemas, mas sem versão do github :(

É suposto que ele também crie a versão do github. Vou analisar o que você postou. Podemos enviar dm no twitter se você quiser respostas mais rápidas também

Construir no GitLab é provavelmente a origem da maioria desses problemas. Como você descobriu, os serviços de CI remotos tendem a fazer várias suposições diferentes.

Dito isso, podemos melhorar a lógica remota e detectar quando estamos no gitlab CI.

Aqui é onde você mudaria o código para descobrir o https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L556 remoto

É suposto que ele também crie a versão do github. Vou analisar o que você postou. Podemos enviar dm no twitter se você quiser respostas mais rápidas também

Farei uma outra versão em cerca de 10 minutos para que você possa ver o que acontece, mas na última versão que foi feita, tive que adicionar manualmente as notas de versão do github.

Acho que você precisa atualizar o output_limit https://docs.gitlab.com/runner/configuration/advanced-configuration.html

Procurando modificar esse limite agora. Parece que há erros ao tentar obter o log git AH, ele está usando uma tag com o prefixo 'v', mas minha configuração de lerna exclui o prefixo?

ℹ  info      Using 17.0.3 as previous release.
ℹ  info      Current "Latest Release" on Github: v17.0.3
ℹ  info      Getting commits from v17.0.3 to HEAD

ele não deveria estar procurando commits da tag para o cabeçalho, então neste caso 17.0.3 para o HEAD?

Isso ocorre porque o padrão automático é v prefixos. Acabei de abrir um PR que fará o auto respeitar a configuração do lerna

https://github.com/intuit/auto/pull/1170

Você também pode simplesmente definir noVersionPrefix em sua configuração automática. mas acho que automatizar isso é melhor

Você também pode simplesmente definir noVersionPrefix em sua configuração automática. mas acho que automatizar isso é melhor

Essa seria a melhor maneira de definir essa configuração? Provavelmente hein?

O problema é que você também teria que definir a configuração do lerna

https://github.com/intuit/auto/pull/1170

Eu o tornei automático, então você só precisa atualizar

Pode ser necessário editar a última tag / release para não ter o prefixo v

Vou verificar isso! obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações