From 1f6eba89bace6e4e62fb2d7fa51482408f94185c Mon Sep 17 00:00:00 2001 From: Haroon Ahmed Date: Thu, 17 Jun 2021 22:39:36 +0100 Subject: [PATCH 1/2] Move to github actions --- .github/workflows/ci.yml | 77 ++++++++++++++++++++++++++++++++++++++++ .travis.yml | 25 ------------- CONTRIBUTING.md | 2 -- Gemfile | 4 +-- README.md | 1 - 5 files changed, 79 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..7e56d5bd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,77 @@ +name: CI +on: [push, pull_request] +jobs: + tests: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - ruby: 2.5 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-5.2.x" + - ruby: 2.5 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-5.2.x.sprockets-4.x" + - ruby: 2.5 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-6.0.x" + - ruby: 2.5 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-6.0.x.sprockets-4.x" + - ruby: 2.6 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-5.2.x" + - ruby: 2.6 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-5.2.x.sprockets-4.x" + - ruby: 2.6 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-6.0.x" + - ruby: 2.6 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-6.0.x.sprockets-4.x" + - ruby: 2.7 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-5.2.x" + - ruby: 2.7 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-5.2.x.sprockets-4.x" + - ruby: 2.7 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-6.0.x" + - ruby: 2.7 + os: ubuntu-latest + gemfile: "gemfiles/Gemfile.rails-6.0.x.sprockets-4.x" + - ruby: 2.7 + os: ubuntu-latest + gemfile: Gemfile + allow-failure: true + - ruby: 3.0 + os: ubuntu-latest + gemfile: Gemfile + allow-failure: true + - ruby: head + os: ubuntu-latest + gemfile: Gemfile + allow-failure: true + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v2 + with: + path: /home/runner/bundle + key: bundle-use-ruby-${{ matrix.ruby }}-${{ matrix.gemfile }}-gems-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }} + restore-keys: | + bundle-use-ruby-${{ matrix.ruby }}-${{ matrix.gemfile }}-gems- + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: Bundle install + run: | + gem install bundler -v 2.1.4 + bundle config path /home/runner/bundle + bundle config --global gemfile ${{ matrix.gemfile }} + bundle install --jobs 4 --retry 3 + - name: Run tests + run: bundle exec rake diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3c27d8f2..00000000 --- a/.travis.yml +++ /dev/null @@ -1,25 +0,0 @@ -language: ruby -cache: bundler - -before_install: gem install bundler -v '<2' - -rvm: - - 2.5.8 - - 2.6.6 - - 2.7.1 - -gemfile: - - Gemfile - - gemfiles/Gemfile.rails-5.2.x - - gemfiles/Gemfile.rails-5.2.x.sprockets-4.x - - gemfiles/Gemfile.rails-6.0.x - - gemfiles/Gemfile.rails-6.0.x.sprockets-4.x - - -notifications: - email: false - campfire: - on_success: change - on_failure: always - rooms: - - secure: "RkdRnCTQkmW7izb9+p9XB8pDrj7XiwHaOXQtEw29U7gXQDPqz77QzoL4cKlvMwalW77079Abp4gQpYeLFIZVm2VcVwFW3/6s0kgf3LGssbrF5fPSQnXk6GQGJBRGUyLt0TCi63Y/5DskREtEINbRfKLiDGm8ar/ExFoJzcZIsig=" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 246f2f0b..e2b64571 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,8 +1,6 @@ Contributing to Sprockets Rails ===================== -[![Build Status](https://travis-ci.org/rails/sprockets-rails.svg?branch=master)](https://travis-ci.org/rails/sprockets-rails) - Sprockets Rails is work of [many contributors](https://github.com/rails/sprockets-rails/graphs/contributors). You're encouraged to submit [pull requests](https://github.com/rails/sprockets-rails/pulls), [propose features and discuss issues](https://github.com/rails/sprockets-rails/issues). #### Fork the Project diff --git a/Gemfile b/Gemfile index 49d76cee..b91662ad 100644 --- a/Gemfile +++ b/Gemfile @@ -2,7 +2,7 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } gemspec -gem 'actionpack', github: 'rails/rails', branch: 'master' -gem 'railties', github: 'rails/rails', branch: 'master' +gem 'actionpack', github: 'rails/rails', branch: 'main' +gem 'railties', github: 'rails/rails', branch: 'main' gem 'rack', github: 'rack/rack', branch: 'master' gem 'sprockets', github: 'rails/sprockets', branch: '3.x' diff --git a/README.md b/README.md index 45d2d35f..69720928 100644 --- a/README.md +++ b/README.md @@ -196,5 +196,4 @@ Sprockets Rails is released under the [MIT License](MIT-LICENSE). ## Code Status -* [![Travis CI](https://travis-ci.org/rails/sprockets-rails.svg?branch=master)](http://travis-ci.org/rails/sprockets-rails) * [![Gem Version](https://badge.fury.io/rb/sprockets-rails.svg)](http://badge.fury.io/rb/sprockets-rails) From 5fb466da6421daef086f1720e7961e348f5ce7c1 Mon Sep 17 00:00:00 2001 From: Haroon Ahmed Date: Sat, 19 Jun 2021 13:22:38 +0100 Subject: [PATCH 2/2] Fixes build for Gemfile, rails 7 by adding a new method that checks the rails version and appends media="screen" to the assertions. The setting config.action_view.apply_stylesheet_media_default = true was added in rails 7. The method signature for ActionView::Base.new requires a couple of extra params which was also needed to get the build to pass. --- Gemfile | 2 +- test/test_helper.rb | 121 ++++++++++++++++++++++--------------------- test/test_railtie.rb | 13 +++-- 3 files changed, 73 insertions(+), 63 deletions(-) diff --git a/Gemfile b/Gemfile index b91662ad..98c92070 100644 --- a/Gemfile +++ b/Gemfile @@ -4,5 +4,5 @@ gemspec gem 'actionpack', github: 'rails/rails', branch: 'main' gem 'railties', github: 'rails/rails', branch: 'main' -gem 'rack', github: 'rack/rack', branch: 'master' +gem 'rack', github: 'rack/rack', branch: 'master', ref: "e84bb296d1a16b32159608596f1f5a23b2016633" gem 'sprockets', github: 'rails/sprockets', branch: '3.x' diff --git a/test/test_helper.rb b/test/test_helper.rb index eb92b9e3..8e680519 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,6 +8,12 @@ ActiveSupport::TestCase.test_order = :random if ActiveSupport::TestCase.respond_to?(:test_order=) +def append_media_attribute + if ::Rails::VERSION::MAJOR < 7 + "media=\"screen\"" + end +end + class HelperTest < ActionView::TestCase FIXTURES_PATH = File.expand_path("../fixtures", __FILE__) @@ -20,7 +26,7 @@ def setup tmp = File.expand_path("../../tmp", __FILE__) @manifest = Sprockets::Manifest.new(@assets, tmp) - @view = ActionView::Base.new(ActionView::LookupContext.new([])) + @view = ActionView::Base.new(ActionView::LookupContext.new([]), {}, nil) @view.extend ::Sprockets::Rails::Helper @view.assets_environment = @assets @view.assets_manifest = @manifest @@ -136,23 +142,23 @@ def test_javascript_include_tag def test_stylesheet_link_tag ActiveSupport::Deprecation.silence do - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:static) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("/elsewhere.css") - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag("/style1.css", "style2.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("http://www.example.com/styles/style") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("http://www.example.com/styles/style.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("//www.example.com/styles/style.css") assert_dom_equal %(), @@ -178,12 +184,12 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity ActiveSupport::Deprecation.silence do - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: "sha-256-5YzTQPuOJz/EpeXfN/+v1sxsjAj/dw8q26abiHZM3A4=") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: false) end end @@ -245,18 +251,18 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity ActiveSupport::Deprecation.silence do - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: false) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: nil) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: "sha-256-5YzTQPuOJz/EpeXfN/+v1sxsjAj/dw8q26abiHZM3A4=") end - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) end end @@ -293,19 +299,19 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: false) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: nil) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo, integrity: true) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:foo, :bar, integrity: true) end end @@ -353,11 +359,11 @@ def test_stylesheet_path assert_equal "https://assets.example.com/stylesheets/bank.css?foo=1#hash", @view.stylesheet_path("bank.css?foo=1#hash") end - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) end @@ -367,7 +373,6 @@ def test_asset_url end end - class NoDigestHelperTest < NoHostHelperTest def setup super @@ -391,11 +396,11 @@ def test_javascript_include_tag def test_stylesheet_link_tag super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) assert_servable_asset_url "/assets/foo.css" @@ -447,14 +452,14 @@ def test_javascript_include_tag def test_stylesheet_link_tag super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:foo, :bar) assert_servable_asset_url "/assets/foo-#{@foo_css_digest}.css" @@ -482,19 +487,19 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: false) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: nil) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo, integrity: true) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:foo, :bar, integrity: true) end @@ -565,11 +570,11 @@ def test_stylesheet_link_tag super if using_sprockets4? - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self.css" @@ -578,11 +583,11 @@ def test_stylesheet_link_tag assert_servable_asset_url "/assets/file1.self.css" assert_servable_asset_url "/assets/file2.self.css" else - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n\n), + assert_dom_equal %(\n\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self.css?body=1" @@ -652,11 +657,11 @@ def test_stylesheet_link_tag super if using_sprockets4? - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self-#{@foo_self_css_digest}.css" @@ -665,11 +670,11 @@ def test_stylesheet_link_tag assert_servable_asset_url "/assets/file1.self-#{@file1_self_css_digest}.css" assert_servable_asset_url "/assets/file2.self-#{@file2_self_css_digest}.css" else - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n\n), + assert_dom_equal %(\n\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self-#{@foo_self_css_digest}.css?body=1" @@ -736,11 +741,11 @@ def test_javascript_include_tag def test_stylesheet_link_tag super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) end @@ -758,11 +763,11 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo, integrity: true) end diff --git a/test/test_railtie.rb b/test/test_railtie.rb index a792b8b4..c24b2372 100644 --- a/test/test_railtie.rb +++ b/test/test_railtie.rb @@ -197,7 +197,7 @@ def test_gzip_config def test_default_check_precompiled_assets assert app.config.assets.check_precompiled_asset app.initialize! - @view = ActionView::Base.new + @view = action_view assert @view.check_precompiled_asset end @@ -206,7 +206,7 @@ def test_configure_check_precompiled_assets config.assets.check_precompiled_asset = false end app.initialize! - @view = ActionView::Base.new + @view = action_view refute @view.check_precompiled_asset end @@ -264,7 +264,7 @@ def test_action_view_helper assert_equal app.assets_manifest, ActionView::Base.assets_manifest assert_kind_of Sprockets::Environment, ActionView::Base.assets_environment - @view = ActionView::Base.new + @view = action_view assert_equal "/javascripts/xmlhr.js", @view.javascript_path("xmlhr") assert_equal "/assets/foo-4ef5541f349f7ed5a0d6b71f2fa4c82745ca106ae02f212aea5129726ac6f6ab.js", @view.javascript_path("foo") @@ -285,7 +285,7 @@ def test_action_view_helper_when_no_compile refute ActionView::Base.assets_environment assert_equal app.assets_manifest, ActionView::Base.assets_manifest - @view = ActionView::Base.new + @view = action_view refute @view.assets_environment assert_equal app.assets_manifest, @view.assets_manifest end @@ -422,4 +422,9 @@ def test_quiet_assets_inserts_middleware assert middleware.include?(Sprockets::Rails::QuietAssets) assert middleware.each_cons(2).include?([Sprockets::Rails::QuietAssets, Rails::Rack::Logger]) end + + private + def action_view + ActionView::Base.new(ActionView::LookupContext.new([]), {}, nil) + end end