Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 23 additions & 48 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
name: Verify

# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
actions: none
checks: none
contents: none
deployments: none
id-token: none
issues: none
discussions: none
packages: none
pages: none
pull-requests: none
repository-projects: none
security-events: none
statuses: none

on:
push:
branches:
Expand All @@ -9,51 +25,10 @@ on:
- '*'

jobs:
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 40

strategy:
fail-fast: true
matrix:
ruby:
- '2.7'
- '3.0'
- '3.1'
- '3.2'
os:
- ubuntu-20.04
- ubuntu-latest
exclude:
- { os: ubuntu-latest, ruby: '2.7' }
- { os: ubuntu-latest, ruby: '3.0' }

env:
RAILS_ENV: test

name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }}
steps:
- name: Install system dependencies
run: sudo apt-get install graphviz

- name: Checkout code
uses: actions/checkout@v2

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true

- name: Test
run: |
bundle exec rake spec
bundle exec rake yard

- name: Upload coverage report
uses: actions/upload-artifact@v2
with:
name: coverage-${{ matrix.ruby }}
path: |
coverage/
retention-days: 1
build:
uses: rapid7/metasploit-framework/.github/workflows/shared_gem_verify_rails.yml@master
with:
dependencies: '["libpcap-dev", "graphviz"]'
test_commands: |
bundle exec rake spec
bundle exec rake yard
8 changes: 7 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,11 @@ group :test do
# code coverage of tests
gem 'simplecov', :require => false
# in-memory database for ActiveRecord association traversal
gem 'sqlite3'
rails_version = ENV['RAILS_VERSION'].to_s[/\d+(?:\.\d+){0,2}/]
sqlite3_requirements = if rails_version && rails_version.split('.').first.to_i < 8
['~> 1.4']
else
['>= 2.1', '< 3.0']
end
gem 'sqlite3', *sqlite3_requirements
end
6 changes: 3 additions & 3 deletions metasploit-erd.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ Gem::Specification.new do |spec|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ['lib']

spec.required_ruby_version = '>= 2.7.0'
spec.required_ruby_version = '>= 3.2.0'

spec.add_development_dependency 'metasploit-yard'
spec.add_development_dependency 'rake'
spec.add_development_dependency 'rspec'

spec.add_runtime_dependency 'activerecord', '~> 7.0'
spec.add_runtime_dependency 'activesupport', '~> 7.0'
spec.add_runtime_dependency 'activerecord', '>= 7.0', '< 8.1'
spec.add_runtime_dependency 'activesupport', '>= 7.0', '< 8.1'
spec.add_runtime_dependency 'rails-erd'
end
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
end

after(:example) do
if ActiveRecord.version >= Gem::Version.new("7.0.0")
if ActiveRecord.version >= Gem::Version.new("8.0.0")
excluded = ActiveSupport::DescendantsTracker.instance_variable_get(:@excluded_descendants)
ActiveRecord::Base.descendants.each { |klass| excluded << klass }
elsif ActiveRecord.version >= Gem::Version.new("7.0.0")
subclasses = ActiveSupport::DescendantsTracker.subclasses(ActiveRecord::Base)
ActiveSupport::DescendantsTracker.clear(subclasses)
else
Expand Down
Loading