diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..e4d674d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: bundler + directory: "/" + schedule: + interval: monthly diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..7c7c73e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,54 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + workflow_dispatch: + + +jobs: + test: + strategy: + matrix: + database: [ mysql, postgresql ] + ruby: [ 2.7, 2.6 ] + fail-fast: false + max-parallel: 20 + runs-on: ubuntu-latest + + env: + CI: true + DB: ${{ matrix.database }} + MYSQL_PASSWORD: root + PGHOST: localhost + PGPASSWORD: runner + PGUSER: runner + RAILS_ENV: test + RETRY_COUNT: 3 + + name: ${{ matrix.extension }} ${{ matrix.ruby }} ${{ matrix.database }} + steps: + - run: sudo apt-get update && sudo apt-get install libsqlite3-dev -y + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + ruby-version: ${{ matrix.ruby }} + + - name: "Set up MySQL using VM's server" + if: ${{ env.DB == 'mysql' }} + run: | + sudo apt-get install libmysqlclient-dev -y + sudo systemctl start mysql.service + + - name: "Set up PostgreSQL using VM's server" + if: ${{ env.DB == 'postgresql' }} + run: | + sudo apt-get install libpq-dev -y + sudo systemctl start postgresql.service + sudo -u postgres psql -c "CREATE USER runner WITH SUPERUSER PASSWORD 'runner'" + + - run: bin/rake refinery:testing:dummy_app + - run: bin/rspec spec diff --git a/Gemfile b/Gemfile index 0c0f2ba..c87e9f4 100644 --- a/Gemfile +++ b/Gemfile @@ -22,9 +22,11 @@ if !ENV["TRAVIS"] || ENV["DB"] == "mysql" gem "mysql2", :platform => :ruby end -if !ENV["TRAVIS"] || ENV["DB"] == "postgresql" - gem "activerecord-jdbcpostgresql-adapter", :platform => :jruby - gem 'pg', '~> 0.21', platform: :ruby +if !ENV['CI'] || ENV['DB'] == 'postgresql' + group :postgres, :postgresql do + gem 'activerecord-jdbcpostgresql-adapter', '>= 1.3.0.rc1', platform: :jruby + gem 'pg', '~> 1.1', platform: :ruby + end end gem "jruby-openssl", :platform => :jruby @@ -49,4 +51,4 @@ end # Load local gems according to Refinery developer preference. if File.exist? local_gemfile = File.expand_path("../.gemfile", __FILE__) eval File.read(local_gemfile) -end \ No newline at end of file +end diff --git a/Rakefile b/Rakefile index 83d140f..d6e7de7 100644 --- a/Rakefile +++ b/Rakefile @@ -13,8 +13,8 @@ if File.exists?(APP_RAKEFILE) end require "refinerycms-testing" -Refinery::Testing::Railtie.load_dummy_tasks File.dirname(__FILE__) +Refinery::Testing::Railtie.load_dummy_tasks(ENGINE_PATH) load File.expand_path('../tasks/rspec.rake', __FILE__) -task :default => :spec +task default: :spec diff --git a/app/controllers/refinery/admin/settings_controller.rb b/app/controllers/refinery/admin/settings_controller.rb index aef0ec8..e92159c 100644 --- a/app/controllers/refinery/admin/settings_controller.rb +++ b/app/controllers/refinery/admin/settings_controller.rb @@ -16,7 +16,7 @@ def new end def edit - @setting = ::Refinery::Setting.find(params[:id]) + @setting = ::Refinery::Setting.friendly.find(params[:id]) render :layout => false if request.xhr? end diff --git a/spec/factories/settings.rb b/spec/factories/settings.rb index 531b84d..69221ed 100644 --- a/spec/factories/settings.rb +++ b/spec/factories/settings.rb @@ -1,5 +1,5 @@ FactoryBot.define do factory :setting, :class => Refinery::Setting do - name "Refinery CMS setting" + name { "Refinery CMS setting" } end end diff --git a/spec/support/refinery_login.rb b/spec/support/refinery_login.rb new file mode 100644 index 0000000..b533a34 --- /dev/null +++ b/spec/support/refinery_login.rb @@ -0,0 +1,3 @@ +def refinery_login + let(:logged_in_user) { Refinery::Core::NilUser.new } +end