Existe uma maneira de estender o tempo para um contêiner Selenium Docker terminar no GitLab?

37 views
Skip to first unread message

Alexandre Mariano

unread,
May 31, 2023, 4:39:35 PM5/31/23
to Selenium Brasil
Para replicar este cenário em sua própria máquina local, use este tutorial: https://github.com/alexandremariano4/template-gitlab-test/blob/main/README.md

Estou usando o seguinte repositório no GitLab (que você pode copiar e testar na sua máquina) para rodar os testes: https://github.com/alexandremariano4/template-gitlab-test

Preciso conseguir aumentar o tempo que o container é finalizado dentro do pipeline, no meu contexto atual, tenho o seguinte arquivo gitlab-ci.yml

Aqui está um arquivo gitlab-ci.yml: https://gist.github.com/alexandremariano4/ae1789074046e7f386a99b15090cff8e

A única coisa que meu código "teste.py" faz é entrar no google e imprimir o nome do título da página, apenas usando para testes. Apesar do meu cenário estar funcionando corretamente, e de fato esse pipeline estar gravando o vídeo como deveria na pasta "videos", o container selenium/video está acabando abruptamente, não dando tempo para que a funcionalidade de criar o arquivo completo tenha sucesso.

Como você pode ver dentro deste container docker-compose.yml, quando eu uso o comando "docker compose down", o container executa algum processo, imagem do processo rodando no docker-compose: 

Imagem do container rodando no gitlab no momento em que é finalizando:

 Essas duas imagens, tirei no momento exato em que, respectivamente, usei o comando "docker compose down" e no momento em que o container está começando a ser fechado no gitlab

Tentei alterar parâmetros de time-out dentro do runner usando o parâmetro shutdown_timeout, mas não funcionou, vi algo relacionado a SIGTERM e SIGKILL, que parece ser algo relacionado ao tempo que leva para o container ser cancelado, no entanto, não consegui ver nenhuma maneira de mudar isso ou aplicar o que vi nos fóruns do gitlab ao meu contexto.

Preciso poder adiar o fechamento do contêiner de selênio/vídeo, para que ele faça todas as etapas que são executadas pela biblioteca ffmpeg, compactação de vídeo, etc (não sei exatamente o que faz). Portanto, a evidência gerada não é um arquivo mp4 quebrado.

Imagem de artefato do Gitlab com arquivo mp4 quebrado 

Patrick Bressan Bremm

unread,
Jun 1, 2023, 3:33:04 PM6/1/23
to Selenium Brasil
Essa parte de "infra" é complicado...

Estava pensando aqui, daria para você fazer algum Shell com delay, entende? Pra garantir que vc processe o vídeo e consiga anexar no Artifact...
Talvez o próprio python manipular esse vídeo que gravou no teste... (fazer delay)

**Pra isso funcionar, seria legal se seu teste defini quando começa gravar e quando para...

Acho dificil ter algo referente após fazer um down e colocar um timeout, algo assim...
Reply all
Reply to author
Forward
0 new messages