问题描述
这是我在 gitlab runner 运行我的 CI 脚本时得到的错误:
pg_dump: server version: 13.2 (Debian 13.2-1.pgdg100+1); pg_dump version: 11.11 (Debian 11.11-0+deb10u1)
pg_dump: aborting because of server version mismatch
rails aborted!
Failed to execute:
pg_dump -s -x -O -f /builds/steady-install-inc/steady-install-backend/db/structure.sql test
这是运行 rspec 的 .gitlab-ci.yml 文件:
image: ruby:2.6.3
stages:
- test
- deploy
cache:
key: $CI_COMMIT_REF_SLUG
paths:
- vendor/bundle
before_script:
- gem install bundler
- bundle install --deployment --without development -j $(nproc)
rspec:
stage: test
services:
- postgres:13.2
variables:
POSTGRES_DB: test
POSTGRES_USER: test
POSTGRES_PASSWORD: test
DATABASE_URL: "postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres/$POSTGRES_DB"
DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: 'true'
script:
# Use example environment variables
- cp config/application.yml.example config/application.yml
- apt-get update -qy && apt-get install -y nodejs
- apt-get install -y postgresql postgresql-client libpq-dev
- bundle exec rails db:migrate RAILS_ENV=test
- bundle exec rspec
coverage: '/\(\d+.\d+\%\) covered/'
only:
- merge_requests
谁能看出我做错了什么?
我在网上尝试了大约 5 到 10 条建议,但大多数似乎是针对 unbuntu 或 docker 的,我不完全确定如何实施,或者它们根本不起作用。
任何事情都有帮助!
编辑: 我也忘了提到我最近切换到 schema.rb 格式到 structure.sql 格式但我'。不确定这是否是问题的一部分,因为我在本地运行它们时我的规格通过了。
解决方法
我对 gitlab-ci.yml
缺乏专业知识,但我想提一下 Gitlab 的 CI Linter - 你试过了吗?有点隐藏啊在左侧菜单中选择 CI/CD > Pipelines,它将位于管道视图的最右侧。