Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Solução quando o Teste Falha no Github Actions [Aula 4.3 Protegendo os Segredos]

Depois de muitas tentativas para entender por que o container do Postgres não subia no localhost e por que também os testes falhavam no GitHub Actions, mesmo seguindo exatamente o passo a passo do instrutor, encontrei a causa do problema.
Log de Erro no servidor do Actions:

=== RUN TestListaTodosOsAlunosHanlder
2025/12/10 15:28:26 /home/runner/work/pipelines-e-testes-automatizados-com-github-actions/pipelines-e-testes-automatizados-com-github-actions/database/db.go:23
[error] failed to initialize database, got error failed to connect to host=*** user=*** database=***: dial error (dial tcp [::1]:***: connect: connection refused)
2025/12/10 15:28:26 Erro ao conectar com banco de dados

O problema é mais simples do que parece, no docker-compose.yml está sendo usada a imagem:

    postgres:
        image: "postgres"

Isso significa que o Docker sempre vai baixar a versão latest do Postgres. E recentemente a versão latest foi atualizada (Postgres 18+), que pode ter ocasionado mudanças no formato interno de armazenamento dos dados do banco.

Por isso no seu local o container do postgres levanta e logo cai. Já no servidor do Actions a incompatibilidade com o modo de persistência/config deve atrapalhar a conexão.

Como resolver?

Para solucionar isso basta fixar a versão do postgres para a 16 que é a usada pelo projeto.

Então, no docker-compose.yml ao invés da imagem ser:

    postgres:
        image: "postgres"

Altere ela para:

postgres:
    image: postgres:16

Mantenha os passos do instrutor conforme foi passado até aqui. Então as variáveis no docker-compose.yml vão ser

environment:
      - DB_HOST=postgres
      - DB_USER=root
      - DB_PASSWORD=root
      - DB_NAME=root
      - DB_PORT=5432

E no secrets:
DB_HOST: localhost;
DB_PASSWORD: root;
DB_USER: root;
DB_NAME: root;
DB_PORT: 5432.

Você não precisa mudar mais nada no projeto. A fixação da versão do postgres já vai resolver o problema.

2 respostas
solução!

Oi, Judisson.

Agradeço por compartilhar.

Gostei muito da sua análise e da forma clara como você identificou o problema aqui é a falta de fixação da versão do Postgres, o que impacta tanto o ambiente local quanto o GitHub Actions.

Parabéns pela persistência e pelo cuidado em detalhar a causa e a solução, isso fortalece muito o aprendizado coletivo.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Olá, Lorena Garcia. Eu que agradeço. Fico feliz que gostou, e é bom compartilharcom essa comunidade.

Seria uma boa colocar a informação antes da Aula 4.3 no curso para fixar a versão do postgres e o curso fluir melhor para outros que forem entrando para fazê-lo.