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.