diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..28532b0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,28 @@ +name: Push gem + +on: + push: + tags: + - "v*" + +jobs: + push: + name: Push gem to RubyGems.org + runs-on: ubuntu-latest + + permissions: + contents: write + id-token: write + + environment: Release + + steps: + - uses: actions/checkout@v6 + with: + persist-credentials: false + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + ruby-version: ruby + - uses: rubygems/release-gem@v1 diff --git a/.github/workflows/ruby.yml b/.github/workflows/test.yml similarity index 85% rename from .github/workflows/ruby.yml rename to .github/workflows/test.yml index babc2bb..5a930b3 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/test.yml @@ -1,3 +1,4 @@ + name: Test on: @@ -13,9 +14,9 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] - ruby: ["3.0", "3.1", "3.2", "3.3"] + ruby: ["3.3", "3.4", "4.0"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby versions uses: ruby/setup-ruby@v1 with: diff --git a/.rubocop.yml b/.rubocop.yml index d66ca94..9d548c8 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,6 +1,6 @@ AllCops: NewCops: enable - TargetRubyVersion: 2.6 + TargetRubyVersion: 3.3 Metrics/MethodLength: Enabled: false diff --git a/Gemfile b/Gemfile index 0f4004b..fca7f38 100644 --- a/Gemfile +++ b/Gemfile @@ -2,5 +2,10 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -# Specify your gem's dependencies in methodfinder.gemspec -gemspec +group :development do + gem 'rake' + gem 'rdoc' + gem 'rubocop', '~> 1.22' +end + +gem 'minitest', '~> 5.15', group: :test diff --git a/Gemfile.lock b/Gemfile.lock index 1ee635f..59c315d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,52 +1,43 @@ -PATH - remote: . - specs: - methodfinder (2.2.5) - GEM remote: https://rubygems.org/ specs: - ast (2.4.2) - json (2.7.2) - language_server-protocol (3.17.0.3) - minitest (5.25.1) - parallel (1.26.3) - parser (3.3.5.0) + ast (2.4.3) + json (2.19.8) + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) + minitest (5.27.0) + parallel (2.1.0) + parser (3.3.11.1) ast (~> 2.4.1) racc - psych (5.1.2) - stringio + prism (1.9.0) racc (1.8.1) rainbow (3.1.1) - rake (13.2.1) - rdoc (6.7.0) - psych (>= 4.0.0) - regexp_parser (2.9.2) - rubocop (1.67.0) + regexp_parser (2.12.0) + rubocop (1.87.0) json (~> 2.3) - language_server-protocol (>= 3.17.0) - parallel (~> 1.10) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) + parallel (>= 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.4, < 3.0) - rubocop-ast (>= 1.32.2, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.3) - parser (>= 3.3.1.0) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.1) + parser (>= 3.3.7.2) + prism (~> 1.7) ruby-progressbar (1.13.0) - stringio (3.1.1) - unicode-display_width (2.6.0) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) PLATFORMS ruby DEPENDENCIES - bundler (~> 2.3) - methodfinder! - minitest (~> 5.0) - rake (~> 13.0) - rdoc (~> 6.5) + minitest (~> 5.15) rubocop (~> 1.22) BUNDLED WITH diff --git a/methodfinder.gemspec b/methodfinder.gemspec index 8b93f50..dffefa1 100644 --- a/methodfinder.gemspec +++ b/methodfinder.gemspec @@ -17,16 +17,11 @@ Gem::Specification.new do |spec| 'bug_tracker_uri' => 'https://todo.sr.ht/~citizen428/methodfinder', 'source_code_uri' => 'https://git.sr.ht/~citizen428/methodfinder/tree', 'mailing_list_uri' => 'https://lists.sr.ht/~citizen428/public-inbox', - 'wiki_uri' => 'https://man.sr.ht/~citizen428/MethodFinder/' + 'wiki_uri' => 'https://man.sr.ht/~citizen428/MethodFinder/', + 'rubygems_mfa_required' => 'true' } spec.files = `git ls-files -z *.md LICENSE.txt lib`.split("\0") spec.require_paths = ['lib'] - spec.required_ruby_version = '>= 2.6' - - spec.add_development_dependency 'bundler', '~> 2.3' - spec.add_development_dependency 'minitest', '~> 5.0' - spec.add_development_dependency 'rake', '~> 13.0' - spec.add_development_dependency 'rdoc', '~> 6.5' - spec.add_development_dependency 'rubocop', '~> 1.22' + spec.required_ruby_version = '>= 3.3' end