diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..46f1c90 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: bundler + directory: "/" + schedule: + interval: "daily" + open-pull-requests-limit: 10 + ignore: + - dependency-name: "rubocop-lts" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/unsupported.yml b/.github/workflows/unsupported.yml new file mode 100644 index 0000000..3e13f86 --- /dev/null +++ b/.github/workflows/unsupported.yml @@ -0,0 +1,52 @@ +name: Unsupported (EOL) Ruby Matrix + +on: + push: + branches: + - 'master' + tags: + - '!*' # Do not execute on tags + pull_request: + branches: + - '*' + # Allow manually triggering the workflow. + workflow_dispatch: + +# Cancels all previous workflow runs for the same branch that have not yet completed. +concurrency: + # The concurrency group contains the workflow name and the branch name. + group: "${{ github.workflow }}-${{ github.ref }}" + cancel-in-progress: true + +jobs: + test: + name: Specs - Ruby ${{ matrix.ruby }}${{ matrix.name_extra || '' }} + if: "!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]')" + env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps + BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile + strategy: + fail-fast: false + matrix: + include: + - ruby: "3.0" + rubygems: "3.3.27" + bundler: none + gemfile: vanilla + - ruby: "2.7" + rubygems: "3.3.27" + bundler: none + gemfile: vanilla + runs-on: ubuntu-20.04 + continue-on-error: ${{ matrix.experimental || endsWith(matrix.ruby, 'head') }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Ruby & RubyGems + uses: ruby/setup-ruby@v1 + with: + ruby-version: "${{ matrix.ruby }}" + rubygems: "${{ matrix.rubygems }}" + bundler: "${{ matrix.bundler }}" + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - name: Run tests + run: bundle exec rake test diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..59511e1 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 2.7.8 diff --git a/gemfiles/vanilla.gemfile b/gemfiles/vanilla.gemfile new file mode 100644 index 0000000..b45c4e8 --- /dev/null +++ b/gemfiles/vanilla.gemfile @@ -0,0 +1,9 @@ +git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } + +source "https://rubygems.org" + +# Root Gemfile is only for local development only. It is not loaded on CI. +# On CI we only need the gemspecs' dependencies (including development dependencies). +# Exceptions, if any, will be found in gemfiles/*.gemfile + +gemspec path: "../" diff --git a/ruby-openid.gemspec b/ruby-openid.gemspec index c7bb265..40e4859 100644 --- a/ruby-openid.gemspec +++ b/ruby-openid.gemspec @@ -23,4 +23,7 @@ Gem::Specification.new do |s| s.rdoc_options << '--main' << 'README.md' s.add_development_dependency 'minitest', '>= 5' + s.add_development_dependency 'rake', '>= 13' + s.add_development_dependency 'rexml', '~> 3.2' + s.add_development_dependency 'webrick', '~> 1.8' end