0
respostas

[Sugestão] Ajuste para funcionar os testes de CI com Github actions

Não acho que depois de um mês o Diego vá voltar aqui, mas a solução do Armano ainda não resolve e pode ajudar alunos no futuro. (https://cursos.alura.com.br/forum/topico-erro-ao-realizar-commit-550740)

Depois de remover de outros cursos os passos ou arquivos de teste no workflow que não funcionam, provavelmente pelo mesmo motivo, resolvi parar de estudar e tentar resolver algo que estava sem solução definitiva (não achei nos outros cursos que fiz) afinal, ferramentas tendem a descontinuar e mudar o seus funcionamentos. A carreira SRE tem este curso sem os anteriores SE tiveram e os erros começaram na aula 2 atividade 10 e até 09/03/2026.

1. O primeiro erro

Ainda tem este problema depois que o docker incorporou docker-compose como um subdomando e depois descontinuou em Julho/2023 (apontado no https://cursos.alura.com.br/forum/topico-sugestao-trocar-o-comando-de-docker-compose-para-docker-compose-489730).
compose_not_found

Para corrigir, no .github/workflows/go.yml remova o hífen do comando docker-compose ficando docker compose.

2. O erro do banco

Se o código não ainda foi atualizado e você seguiu igual a aula, o passo Test vai falhar com 1 bilhão % de certeza.
db_connection_error

Mas tem solução.

2.1. O que fiz

Primeiro limitei para uma versão do Go e Ubuntu (por sorte a latest e você vai entender) no passo de Test. Após várias horas de leitura e busca sem informação mudei o passo Create-DB do script .github/workflows/go.yml para:
- name: Create-DB
run: |
docker compose up -d
docker ps -a
docker compose logs postgres

Com o docker ps -a isso foi possível identificar que o container do PostgreSQL não estava funcionando, que normalmente indica problema na imagem ou no container.
container_exited

E com o docker compose logs postgres que era a versão do PostgreSQL usado na aula é muito diferente da mais recente, já que não informamos a versão é pego a latest.
version_issue

2.2. Solução

No arquivo ./docker-compose.yml você deve fixar uma versão do PostgreSQL anterior a 18. Eu fixei a latest de quando foi gravado a aula (2022), ou seja, a 13 o começo fica:

services:
postgres:
image: "postgres:13"

P.S. o version: '3' é uma linha descontinuada e remover não interefe
Agora o container do banco fica estável e continua funcionando.
working_limit

Com isso podemos remover os limitadores de versões, mas ainda tem mais um problema.
working_no_limit

3. Versão de Ubuntu

O Github removeu o Ubuntu 18.04 da lista de imagens suportadas em Abril/2023 e o código parou de funcionar, a solução é fixar uma versão LTS mais recente, no meu caso 24.04, (https://cursos.alura.com.br/forum/topico-build-no-workflows-nao-funfa-448205) nas estratégias de tipo os do arquivo .github/workflows/go.yml ficando:
os: ['ubuntu-latest', 'ubuntu-24.04']

Com isso todos os testes voltam a funcionar.
all_working

4. Conclusão

Agora você pode continuar a aula com menos problemas e pode tentar aplicar em outros cursos de CICD que tenham problemas semelhantes. Mesmo que o conteúdo ainda sejam aplicáveis, o código está defazado. De forma resumida minhas sugestões são:

  1. Atualização dos códigos usados nas aulas
  2. Revisão dos códigos das aulas em intervalos de tempo
  3. Permitir que alunos possam corrigir os códigos das aulas, preferencialmente as que estejam no repositório oficial da Alura no Github (não sei se é possível porque não tentei)
  4. Fixar versões de pacotes, ferramentas e SO nos scripts
    Me parece mais fácil quarta, embora a terceira me parece mais colaborativa.

5. Bônus

5.1. Inserir imagens no fórum

Troquem o texto Insira aqui a descrição dessa imagem para ajudar na acessibilidade para Insira_aqui_a_descrição_dessa_imagem_para_ajudar_na_acessibilidade, é muito mais eficiente e acessível dois cliques de mouse que selecionar tudo a menos que diminuia o texto para uma única palavra.

5.2. Atualização do portal

De preferência mudem os horários, alertem ou façam deploy blue green (se não for usado), não foi a primeira vez que escrevo um post ou resposta e quando envio vem a tela de manutenção perdendo o conteúdo, mas desta vez resolvi refazer. Dica, se for fazer algo longo, faça fora desta área.