From 9e855549f4f4b90bb845086322cb579ef7a4ea29 Mon Sep 17 00:00:00 2001 From: Vinicius Stock Date: Tue, 8 Aug 2023 16:47:17 -0400 Subject: [PATCH] Add CI matrix --- .github/workflows/ci.yml | 16 ++- Gemfile | 7 +- Gemfile.lock | 219 +++++++++++++++++++++++---------------- 3 files changed, 147 insertions(+), 95 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45c8af96..6a51d6d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,19 +5,31 @@ on: [push, pull_request] jobs: test: - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + ruby: ["3.0", "3.1", "3.2", "head"] + include: + - ruby: "head" + experimental: true + runs-on: ${{ matrix.os }} + continue-on-error: ${{ !!matrix.experimental }} + name: Ruby ${{ matrix.ruby }} on ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.2' + ruby-version: ${{ matrix.ruby }} bundler-cache: true + cache-version: 2 - name: Check if documentation is up to date run: bundle exec rake ruby_lsp:check_docs - name: Typecheck + if: matrix.os != 'windows-latest' run: bundle exec srb tc - name: Lint Ruby files diff --git a/Gemfile b/Gemfile index a4d2f62c..d198b258 100644 --- a/Gemfile +++ b/Gemfile @@ -15,5 +15,8 @@ gem "rubocop-minitest", "~> 0.31.0", require: false gem "rubocop-rake", "~> 0.6.0", require: false gem "rubocop-sorbet", "~> 0.7", require: false gem "rdoc", require: false -gem "sorbet-static-and-runtime" -gem "tapioca", "~> 0.11", require: false +gem "sorbet-static-and-runtime", platforms: :ruby +gem "tapioca", "~> 0.11", require: false, platforms: :ruby +gem "psych", "~> 5.1", require: false +gem "rails", github: "rails/rails", branch: "main" +gem "tzinfo-data", platforms: [:windows] diff --git a/Gemfile.lock b/Gemfile.lock index 2a435b5a..2ffe5a09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,88 +1,127 @@ -PATH - remote: . - specs: - ruby-lsp-rails (0.2.3) - rails (>= 6.0) - ruby-lsp (>= 0.8.0, < 0.9.0) - sorbet-runtime (>= 0.5.9897) - -GEM - remote: https://rubygems.org/ +GIT + remote: https://github.com/rails/rails.git + revision: c0980d30360149d0c77beb79850e047440c628bf + branch: main specs: - actioncable (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + actioncable (7.1.0.alpha) + actionpack (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + zeitwerk (~> 2.6) + actionmailbox (7.1.0.alpha) + actionpack (= 7.1.0.alpha) + activejob (= 7.1.0.alpha) + activerecord (= 7.1.0.alpha) + activestorage (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.6) - actionpack (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activesupport (= 7.0.6) + actionmailer (7.1.0.alpha) + actionpack (= 7.1.0.alpha) + actionview (= 7.1.0.alpha) + activejob (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.6) - actionview (= 7.0.6) - activesupport (= 7.0.6) - rack (~> 2.0, >= 2.2.4) + rails-dom-testing (~> 2.2) + actionpack (7.1.0.alpha) + actionview (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) + nokogiri (>= 1.8.5) + rack (>= 2.2.4) + rack-session (>= 1.0.1) rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.6) - actionpack (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.0.alpha) + actionpack (= 7.1.0.alpha) + activerecord (= 7.1.0.alpha) + activestorage (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.6) - activesupport (= 7.0.6) + actionview (7.1.0.alpha) + activesupport (= 7.1.0.alpha) builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.6) - activesupport (= 7.0.6) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.0.alpha) + activesupport (= 7.1.0.alpha) globalid (>= 0.3.6) - activemodel (7.0.6) - activesupport (= 7.0.6) - activerecord (7.0.6) - activemodel (= 7.0.6) - activesupport (= 7.0.6) - activestorage (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activesupport (= 7.0.6) + activemodel (7.1.0.alpha) + activesupport (= 7.1.0.alpha) + activerecord (7.1.0.alpha) + activemodel (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) + timeout (>= 0.4.0) + activestorage (7.1.0.alpha) + actionpack (= 7.1.0.alpha) + activejob (= 7.1.0.alpha) + activerecord (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.6) + activesupport (7.1.0.alpha) + base64 concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) minitest (>= 5.1) + mutex_m tzinfo (~> 2.0) + rails (7.1.0.alpha) + actioncable (= 7.1.0.alpha) + actionmailbox (= 7.1.0.alpha) + actionmailer (= 7.1.0.alpha) + actionpack (= 7.1.0.alpha) + actiontext (= 7.1.0.alpha) + actionview (= 7.1.0.alpha) + activejob (= 7.1.0.alpha) + activemodel (= 7.1.0.alpha) + activerecord (= 7.1.0.alpha) + activestorage (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) + bundler (>= 1.15.0) + railties (= 7.1.0.alpha) + railties (7.1.0.alpha) + actionpack (= 7.1.0.alpha) + activesupport (= 7.1.0.alpha) + irb + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + zeitwerk (~> 2.6) + +PATH + remote: . + specs: + ruby-lsp-rails (0.2.3) + rails (>= 6.0) + ruby-lsp (>= 0.8.0, < 0.9.0) + sorbet-runtime (>= 0.5.9897) + +GEM + remote: https://rubygems.org/ + specs: ast (2.4.2) + base64 (0.1.1) builder (3.2.4) concurrent-ruby (1.2.2) + connection_pool (2.4.1) crass (1.0.6) date (3.3.3) debug (1.8.0) irb (>= 1.5.0) reline (>= 0.3.1) diff-lcs (1.5.0) + drb (2.1.1) + ruby2_keywords erubi (1.12.0) globalid (1.1.0) activesupport (>= 5.0) @@ -102,12 +141,13 @@ GEM net-pop net-smtp marcel (1.0.2) - method_source (1.0.0) - mini_mime (1.1.2) - minitest (5.18.1) + mini_mime (1.1.5) + mini_portile2 (2.8.4) + minitest (5.19.0) mocha (2.1.0) ruby2_keywords (>= 0.0.5) - net-imap (0.3.6) + mutex_m (0.1.2) + net-imap (0.3.7) date net-protocol net-pop (0.1.2) @@ -118,9 +158,8 @@ GEM net-protocol netrc (0.11.0) nio4r (2.5.9) - nokogiri (1.15.2-arm64-darwin) - racc (~> 1.4) - nokogiri (1.15.2-x86_64-linux) + nokogiri (1.15.4) + mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.23.0) parser (3.2.2.3) @@ -132,37 +171,21 @@ GEM puma (6.3.0) nio4r (~> 2.0) racc (1.7.1) - rack (2.2.7) + rack (3.0.8) + rack-session (2.0.0) + rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) - rails (7.0.6) - actioncable (= 7.0.6) - actionmailbox (= 7.0.6) - actionmailer (= 7.0.6) - actionpack (= 7.0.6) - actiontext (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activemodel (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) - bundler (>= 1.15.0) - railties (= 7.0.6) - rails-dom-testing (2.1.1) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) - method_source - rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) rainbow (3.1.1) rake (13.0.6) rbi (0.0.17) @@ -206,6 +229,13 @@ GEM sorbet (0.5.10950) sorbet-static (= 0.5.10950) sorbet-runtime (0.5.10950) + sorbet-static (0.5.10950-universal-darwin-14) + sorbet-static (0.5.10950-universal-darwin-15) + sorbet-static (0.5.10950-universal-darwin-16) + sorbet-static (0.5.10950-universal-darwin-17) + sorbet-static (0.5.10950-universal-darwin-18) + sorbet-static (0.5.10950-universal-darwin-19) + sorbet-static (0.5.10950-universal-darwin-20) sorbet-static (0.5.10950-universal-darwin-21) sorbet-static (0.5.10950-universal-darwin-22) sorbet-static (0.5.10950-x86_64-linux) @@ -218,9 +248,10 @@ GEM sorbet-runtime (>= 0.5.9204) syntax_tree (>= 6.1.1) thor (>= 0.19.2) + sqlite3 (1.6.3) + mini_portile2 (~> 2.8.0) sqlite3 (1.6.3-arm64-darwin) - sqlite3 (1.6.3-x86_64-linux) - stringio (3.0.6) + stringio (3.0.7) syntax_tree (6.1.1) prettier_print (>= 1.2.0) tapioca (0.11.8) @@ -240,24 +271,29 @@ GEM unparser (0.6.8) diff-lcs (~> 1.3) parser (>= 3.2.0) - websocket-driver (0.7.5) + webrick (1.8.1) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) yard (0.9.34) yard-sorbet (0.8.1) sorbet-runtime (>= 0.5) yard (>= 0.9) - zeitwerk (2.6.8) + zeitwerk (2.6.11) PLATFORMS - arm64-darwin-21 - arm64-darwin-22 + arm64-darwin + x64-mingw-ucrt + x64-mingw32 + x86_64-darwin x86_64-linux DEPENDENCIES debug (>= 1.7.0) mocha + psych (~> 5.1) puma + rails! rdoc rubocop-minitest (~> 0.31.0) rubocop-rake (~> 0.6.0) @@ -267,6 +303,7 @@ DEPENDENCIES sorbet-static-and-runtime sqlite3 tapioca (~> 0.11) + tzinfo-data BUNDLED WITH 2.4.10