Open exocode opened 3 years ago
I think I found a workaround.
It's not pretty but at least I can now restore tests in my Gitlab CI. 😅
First of all, the issue with URI
's name resolution is likely fixable by applying this patch to activerecord (v6.1.4.4 in my case):
diff --git a/lib/active_record/database_configurations/connection_url_resolver.rb b/lib/active_record/database_configurations/connection_url_resolver.rb
index 13fddb9..a136243 100644
--- a/lib/active_record/database_configurations/connection_url_resolver.rb
+++ b/lib/active_record/database_configurations/connection_url_resolver.rb
@@ -1,5 +1,6 @@
# frozen_string_literal: true
+require "uri"
require "active_support/core_ext/enumerable"
module ActiveRecord
@@ -44,7 +45,7 @@ module ActiveRecord
attr_reader :uri
def uri_parser
- @uri_parser ||= URI::Parser.new
+ @uri_parser ||= ::URI::Parser.new
end
# Converts the query parameters of the URI into a hash.
As far as I know there's not this kind of fix on 6.x, yet so the question is how to fix it in the meanwhile. I created a testing repository of activerecord v6.1.4.4 here: https://github.com/olistik/activerecord-test/ It contains the abovementioned patch.
Then I put this conditional require in my Gemfile and updated my .gitlab-ci.yml
accordingly:
Gemfile:
# Because of an issue faced in Gitlab CI between database_cleaner and activerecord.
# see https://github.com/DatabaseCleaner/database_cleaner/issues/686
if ENV['GITLAB_CI'] == 'true'
gem 'activerecord', github: 'olistik/activerecord-test'
end
.gitlab-ci.yml:
- GITLAB_CI=true bundle install --no-binstubs -j $(nproc) --path vendor # Install dependencies
Hope to be helpful for someone in a similar situation. <3 Feel free to propose better solutions. 🎩
I upgraded Rails to 6.1.6 and the problem somehow disappeared from my pipeline. I did a quick scan of Rails' changelog but couldn't find a direct fix so 🤷🏻♂️ 😅
I run my specs on Gitlab CI. When I try to run
bundle exec rspec
I get:ruby '2.7.2'
Gemfile:
Gemfile.lock
On my internet research I found this:
https://blog.code-fabrik.ch/2021/03/31/sinatra-databaseconfiguration-url.html