私はしばらくの間、GitHub アクションと戦ってきました。Travis をしばらく使用した後、GitHub Action に切り替える必要があり、Rails アプリケーションのテストを実行するようにセットアップできません。問題は、Rails が移行からデータベースに接続して作成するためのデータベースが開始されていないことです。
これは私のワークフロー .yml ファイルです:
name: Ruby on Rails CI
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['2.6', '2.7', '3.0']
services:
postgres:
env:
POSTGRES_DB: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
image: postgres:13
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.3
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Install dependencies
run: |
yarn install
- name: Build and Test
run: |
sudo apt-get -yqq install libpq-dev
bundle exec rake db:migrate
bundle exec rake test
[アクション] タブから表示されるエラー:
rake aborted!
ActiveRecord::ConnectionNotEstablished: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:83:in `rescue in new_client'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:77:in `new_client'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `public_send'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `new_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:926:in `checkout_new_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:905:in `try_to_checkout_new_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:866:in `acquire_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:588:in `checkout'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:428:in `connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:1128:in `retrieve_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_handling.rb:327:in `retrieve_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_handling.rb:283:in `connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/tasks/database_tasks.rb:237:in `migrate'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/railties/databases.rake:92:in `block (3 levels) in <main>'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/railties/databases.rake:90:in `each'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/railties/databases.rake:90:in `block (2 levels) in <main>'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
/opt/hostedtoolcache/Ruby/2.7.3/x64/bin/bundle:23:in `load'
/opt/hostedtoolcache/Ruby/2.7.3/x64/bin/bundle:23:in `<main>'
Caused by:
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:78:in `new_client'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `public_send'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:882:in `new_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:926:in `checkout_new_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:905:in `try_to_checkout_new_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:866:in `acquire_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:588:in `checkout'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:428:in `connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:1128:in `retrieve_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_handling.rb:327:in `retrieve_connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/connection_handling.rb:283:in `connection'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/tasks/database_tasks.rb:237:in `migrate'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/railties/databases.rake:92:in `block (3 levels) in <main>'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/railties/databases.rake:90:in `each'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.4/lib/active_record/railties/databases.rake:90:in `block (2 levels) in <main>'
/home/runner/work/Escape-Room-Planner/Escape-Room-Planner/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
/opt/hostedtoolcache/Ruby/2.7.3/x64/bin/bundle:23:in `load'
/opt/hostedtoolcache/Ruby/2.7.3/x64/bin/bundle:23:in `<main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)
Error: Process completed with exit code 1.
この問題に関する複数のビデオとスタック オーバーフローの議論を見てきましたが、これまでのところ何も機能していません。どんな助けでも大歓迎です。