PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

GitHub Actions:Como se conectar ao Postgres em GithHub Actions


Eu tenho uma configuração um pouco diferente, mas essa foi a pergunta mais relevante quando encontrei o mesmo erro, então queria postar aqui caso possa ajudar. As duas coisas que foram críticas para mim foram:1) Defina o DB_HOST=localhost 2) Defina o --network="host" argumento quando você inicia o contêiner docker com seu aplicativo Rails
name: Master Build

on: [push]

env:
  registry: my_registry_name
  # Not sure these are actually being passed down to rails, set them as the default in database.yml
  DB_HOST: localhost
  DB_USERNAME: postgres
  DB_PASSWORD: postgres

jobs:
  my_image_test:
    runs-on: ubuntu-latest

    services:
      postgres:
        image: postgres:latest
        env:
          POSTGRES_DB: postgres        
          POSTGRES_PASSWORD: postgres
          POSTGRES_USER: postgres
        ports:
          - 5432:5432
        # Set health checks to wait until postgres has started
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    steps:
      - name: Check out repository
        uses: actions/[email protected]
      - name: Build my_image docker image
        uses: whoan/[email protected]
        with:
          username: "${{secrets.aws_ecr_access_key_id}}"
          password: "${{secrets.aws_ecr_secret_access_key}}"
          registry: "${{env.registry}}"
          image_name: my_image
          context: my_image
      - name: Lint rubocop
        working-directory: ./my_image
        run: docker run $registry/my_image bundle exec rubocop
      - name: Run rails tests
        working-directory: ./my_image
        run: docker run --network="host" $registry/my_image bash -c "RAILS_ENV=test rails db:create && RAILS_ENV=test rails db:migrate && rails test"