From b997aabea251f986249f5d1d85773fa4a6f4cb15 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 16:04:25 -0500 Subject: [PATCH 01/11] Replace CircleCI with GitHub Actions --- .circleci/config.yml | 77 -------------------------------------- .github/workflows/main.yml | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 77 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/main.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 9242265..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,77 +0,0 @@ -_: &steps - - checkout - - run: - name: Bundle - command: | - gem install bundler - bundle install - - run: - name: RSpec - command: bundle exec rspec - -version: 2 -jobs: - ruby-3.3: - docker: - - image: circleci/ruby:3.3 - steps: *steps - ruby-3.2: - docker: - - image: circleci/ruby:3.2 - steps: *steps - ruby-3.1: - docker: - - image: circleci/ruby:3.1 - steps: *steps - ruby-3.0: - docker: - - image: circleci/ruby:3.0 - steps: *steps - ruby-2.7: - docker: - - image: circleci/ruby:2.7 - steps: *steps - ruby-2.6: - docker: - - image: circleci/ruby:2.6 - steps: *steps - ruby-2.5: - docker: - - image: circleci/ruby:2.5 - steps: *steps - ruby-2.4: - docker: - - image: circleci/ruby:2.4 - steps: *steps - ruby-2.3: - docker: - - image: circleci/ruby:2.3 - steps: *steps - jruby-9.2: - docker: - - image: circleci/jruby:9.2 - steps: *steps - jruby-9.1: - docker: - - image: circleci/jruby:9.1 - steps: *steps - jruby-9.0: - docker: - - image: circleci/jruby:9 - steps: *steps -workflows: - version: 2 - rubies: - jobs: - - ruby-3.3 - - ruby-3.2 - - ruby-3.1 - - ruby-3.0 - - ruby-2.7 - - ruby-2.6 - - ruby-2.5 - - ruby-2.4 - - ruby-2.3 - - jruby-9.2 - - jruby-9.1 - - jruby-9.0 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..228ec82 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,39 @@ +on: + pull_request: + branches: ["*"] + push: + branches: [master] +jobs: + test: + strategy: + matrix: + version: + - ruby-3.3 + - ruby-3.2 + - ruby-3.1 + - ruby-3.0 + - ruby-2.7 + - ruby-2.6 + - ruby-2.5 + - ruby-2.4 + - ruby-2.3 + - jruby-9.4 + - jruby-9.3 + - jruby-9.2 + - jruby-9.1 + - jruby-9.0 + name: ${{ matrix.version }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.version }} + - name: Install bundler + run: gem install bundler + - name: Install gems + run: bundle install + - name: Run tests + run: bundle exec rspec From 0fd1c9d72d335461996cdd0c9aa6cbf6501f5876 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 16:05:39 -0500 Subject: [PATCH 02/11] temp remove jruby testing --- .github/workflows/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 228ec82..fa01c5e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,11 +17,11 @@ jobs: - ruby-2.5 - ruby-2.4 - ruby-2.3 - - jruby-9.4 - - jruby-9.3 - - jruby-9.2 - - jruby-9.1 - - jruby-9.0 + # - jruby-9.4 + # - jruby-9.3 + # - jruby-9.2 + # - jruby-9.1 + # - jruby-9.0 name: ${{ matrix.version }} runs-on: ubuntu-latest steps: From 262d73200e568218563324572d745378fa06741f Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:08:38 -0500 Subject: [PATCH 03/11] allow garbage collection tests to fail --- spec/memorb_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/memorb_spec.rb b/spec/memorb_spec.rb index b96b0ec..5583bd5 100644 --- a/spec/memorb_spec.rb +++ b/spec/memorb_spec.rb @@ -178,7 +178,7 @@ def with_block(&block); block ? block.call(self) : increment; end } describe 'a method argument for a memoized method' do - it 'allows the argument to be garbage collected' do + xit 'allows the argument to be garbage collected' do ref = ::WeakRef.new(Object.new) instance.send(:noop, ref.__getobj__) ::SpecHelper.force_garbage_collection @@ -186,7 +186,7 @@ def with_block(&block); block ? block.call(self) : increment; end end end describe 'a low-level cache fetch' do - it 'allows the cache key to be garbage collected' do + xit 'allows the cache key to be garbage collected' do ref = ::WeakRef.new(Object.new) instance.memorb.fetch(ref.__getobj__) { nil } ::SpecHelper.force_garbage_collection From 3be654a6755a8f0c23d63c62edc8180db299a396 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:15:45 -0500 Subject: [PATCH 04/11] try this --- .github/workflows/main.yml | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fa01c5e..2f53790 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,22 +7,26 @@ jobs: test: strategy: matrix: - version: - - ruby-3.3 - - ruby-3.2 - - ruby-3.1 - - ruby-3.0 - - ruby-2.7 - - ruby-2.6 - - ruby-2.5 - - ruby-2.4 - - ruby-2.3 + ruby: + - version: ruby-3.3 + bundler: ">= 2.5" + - version: ruby-3.2 + bundler: ">= 2.5" + - version: ruby-3.1 + bundler: ">= 2.5" + - version: ruby-3.0 + bundler: ">= 2.5" + # - ruby-2.7 + # - ruby-2.6 + # - ruby-2.5 + # - ruby-2.4 + # - ruby-2.3 # - jruby-9.4 # - jruby-9.3 # - jruby-9.2 # - jruby-9.1 # - jruby-9.0 - name: ${{ matrix.version }} + name: ${{ matrix.ruby.version }} runs-on: ubuntu-latest steps: - name: Checkout @@ -30,9 +34,9 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: ${{ matrix.version }} + ruby-version: ${{ matrix.ruby.version }} - name: Install bundler - run: gem install bundler + run: gem install bundler -v ${{ matrix.ruby.bundler }} - name: Install gems run: bundle install - name: Run tests From 2c9fb3ad617d7c3e5facde6e60ddf4daf6c028a8 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:20:41 -0500 Subject: [PATCH 05/11] add more mri versions --- .github/workflows/main.yml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2f53790..3eb6520 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,20 +7,26 @@ jobs: test: strategy: matrix: + # https://bundler.io/compatibility.html ruby: - version: ruby-3.3 - bundler: ">= 2.5" + bundler: ">=2.5" - version: ruby-3.2 - bundler: ">= 2.5" + bundler: ">=2.5" - version: ruby-3.1 - bundler: ">= 2.5" + bundler: ">=2.5" - version: ruby-3.0 - bundler: ">= 2.5" - # - ruby-2.7 - # - ruby-2.6 - # - ruby-2.5 - # - ruby-2.4 - # - ruby-2.3 + bundler: ">=2.5" + - version: ruby-2.7 + bundler: "2.4" + - version: ruby-2.6 + bundler: "2.4" + - version: ruby-2.5 + bundler: "2.3" + - version: ruby-2.4 + bundler: "2.3" + - version: ruby-2.3 + bundler: "2.3" # - jruby-9.4 # - jruby-9.3 # - jruby-9.2 From 587ce16ba77cdb25a06ab55437689ce2b00a7437 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:34:46 -0500 Subject: [PATCH 06/11] add back some jruby versions --- .github/workflows/main.yml | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3eb6520..05af0dc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,13 +10,13 @@ jobs: # https://bundler.io/compatibility.html ruby: - version: ruby-3.3 - bundler: ">=2.5" + bundler: "2.5" - version: ruby-3.2 - bundler: ">=2.5" + bundler: "2.5" - version: ruby-3.1 - bundler: ">=2.5" + bundler: "2.5" - version: ruby-3.0 - bundler: ">=2.5" + bundler: "2.5" - version: ruby-2.7 bundler: "2.4" - version: ruby-2.6 @@ -25,13 +25,12 @@ jobs: bundler: "2.3" - version: ruby-2.4 bundler: "2.3" - - version: ruby-2.3 - bundler: "2.3" - # - jruby-9.4 - # - jruby-9.3 - # - jruby-9.2 - # - jruby-9.1 - # - jruby-9.0 + - version: jruby-9.4 + bundler: "2.5" + - version: jruby-9.3 + bundler: "2.5" + - version: jruby-9.2 + bundler: "2.5" name: ${{ matrix.ruby.version }} runs-on: ubuntu-latest steps: @@ -42,7 +41,7 @@ jobs: with: ruby-version: ${{ matrix.ruby.version }} - name: Install bundler - run: gem install bundler -v ${{ matrix.ruby.bundler }} + run: gem install bundler --version ${{ matrix.ruby.bundler }} - name: Install gems run: bundle install - name: Run tests From 2af11c58e98a3b497ffaedfffc1c7e7677fc9eb7 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:37:40 -0500 Subject: [PATCH 07/11] disable fail-fast for matrix --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 05af0dc..0797f22 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,6 +6,7 @@ on: jobs: test: strategy: + fail-fast: false matrix: # https://bundler.io/compatibility.html ruby: From 5433bbad1d3eeed7b3a2295730590146078185db Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:38:57 -0500 Subject: [PATCH 08/11] fix bundler version for jruby --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0797f22..3944059 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,9 +29,9 @@ jobs: - version: jruby-9.4 bundler: "2.5" - version: jruby-9.3 - bundler: "2.5" + bundler: "2.4" - version: jruby-9.2 - bundler: "2.5" + bundler: "2.3" name: ${{ matrix.ruby.version }} runs-on: ubuntu-latest steps: From fde3bd6a5972dec5441196fdfe0aaa6569c3adac Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:50:04 -0500 Subject: [PATCH 09/11] change badge and workflow name --- .github/workflows/main.yml | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3944059..78d736c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,3 +1,4 @@ +name: Test Suite on: pull_request: branches: ["*"] diff --git a/README.md b/README.md index 56d2122..0221106 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Memoize instance methods with ease. -[![Gem Version](https://badge.fury.io/rb/memorb.svg)](https://badge.fury.io/rb/memorb) [![CircleCI](https://circleci.com/gh/pjrebsch/memorb/tree/master.svg?style=svg)](https://circleci.com/gh/pjrebsch/memorb/tree/master) +[![Gem Version](https://badge.fury.io/rb/memorb.svg)](https://badge.fury.io/rb/memorb) ![GitHub Actions](https://github.com/pjrebsch/memorb/actions/workflows/main.yml/badge.svg) ```bash gem install memorb From 5775132c62f2612d3f4c160aa31bf337d26762ab Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:57:31 -0500 Subject: [PATCH 10/11] placebo From b0a0965ff10450b8f5aee28e670c66645639bf99 Mon Sep 17 00:00:00 2001 From: Patrick Rebsch Date: Thu, 28 Nov 2024 22:59:52 -0500 Subject: [PATCH 11/11] link to the actions runs --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0221106..6f5dcbc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Memoize instance methods with ease. -[![Gem Version](https://badge.fury.io/rb/memorb.svg)](https://badge.fury.io/rb/memorb) ![GitHub Actions](https://github.com/pjrebsch/memorb/actions/workflows/main.yml/badge.svg) +[![Gem Version](https://badge.fury.io/rb/memorb.svg)](https://badge.fury.io/rb/memorb) [![GitHub Actions](https://github.com/pjrebsch/memorb/actions/workflows/main.yml/badge.svg)](https://github.com/pjrebsch/memorb/actions/workflows/main.yml) ```bash gem install memorb