Falta pouco!

0 dias

0 horas

0 min

0 seg

2
respostas

Banco de dados

Estou com este erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Essa aqui é minha CI

name: Integration Continuos

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:

ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Go
  uses: actions/setup-go@v4
  with:
    go-version: '1.22'

- name: Inicia banco
  run: docker-compose up -d postgres

- name: Lint
  uses: golangci/golangci-lint-action@v8
  with:
    version: v2.1
    args: controllers/ database/ routes

- name: Test
  run: go test -v ./...
2 respostas

Olá!

O erro está acontecendo porque o runner do GitHub Actions não vem com o docker-compose instalado por padrão.
Por isso a etapa docker-compose up -d postgres falha com command not found.

Você tem alguns caminhos para resolver:
Usar o serviço nativo do GitHub Actions

Em vez de subir o Postgres com docker-compose, use a diretiva services: no job. Exemplo:

name: Integration Continuous

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  ci:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:14
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: mydb
        ports:
          - 5432:5432
        options: >-
          --health-cmd="pg_isready -U postgres"
          --health-interval=10s
          --health-timeout=5s
          --health-retries=5

    steps:
      - uses: actions/checkout@v4

      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: '1.22'

      - name: Lint
        uses: golangci/golangci-lint-action@v8
        with:
          version: v2.1
          args: controllers/ database/ routes

      - name: Test
        run: go test -v ./...

Assim o banco já sobe como um container de serviço e o seu código pode se conectar a ele direto na porta 5432.

Instalar o docker-compose no runner (menos recomendado)

Se você realmente precisa do docker-compose.yml porque tem outros serviços além do Postgres, pode instalar o binário antes:

- name: Install Docker Compose
  run: |
    sudo apt-get update
    sudo apt-get install -y docker-compose

Depois disso, o comando docker-compose up -d vai funcionar.

Só mudar de docker-compose pra docker compose, Wesley. Avisa se deu certo.