Skip to content

Commit

Permalink
Resolve gem dependencies across "supported" environments (#142)
Browse files Browse the repository at this point in the history
  • Loading branch information
scub authored and aboe76 committed Jan 24, 2019
1 parent 2979af9 commit cf3b048
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions test/integration/helpers/serverspec/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# -*- coding: utf-8 -*-
# vim: ft=ruby

# Global source defined as https://rubygems.org
source 'https://rubygems.org'

# Attempt to fingerprint OS from /etc/os-release where available
if File.file?("/etc/os-release")

os_family = ''
os_version = ''
os_version_full = ''

# Strip necessary granularity from os-release
File.open("/etc/os-release").grep(/(^ID=(.*)$|^VERSION="(.*)"$|^VERSION_ID="(.*)")/) do |line|

# OS family (Debian/CentOS/Ubuntu)
if ( line =~ /^ID=\S/ )
os_family = line.split('=')[1]
puts "IDENTIFIED os_family = " + os_family
end

# Major revision
if ( line =~ /^VERSION_ID="(.*)"$/ )
os_version = line.split('=')[1].tr('"','')
puts "IDENTIFIED os_version = " + os_version
end

# Vanity name
if ( line =~ /^VERSION="(.*)"$/ )
os_version_full = line.split('=')[1]
puts "IDENTIFIED os_version_full = " + os_version_full
end

end

# Pinning is broken into os_family and then os_version
# to try and avoid conflict.
case os_family

when /debian/
# os_family: Debian os_version dependent pins
case os_version
when /7/
puts "busser-serverspec is no longer natively supported on: " + os_version_full
when /8/
gem 'net-ssh', '~> 4.2.0'
else
puts "Your distribution is either too old, or supported without pins: " + os_version_full
end

when /centos/
# os_family: centos os_version dependent pins
print "Switching on " + os_version
case os_version
when /6/
puts "busser-serverspec has no native supported on: " + os_version_full
when /7/
gem 'net-ssh', '~> 4.2.0'
else
puts "Your distribution is either too old, or supported without pins: " + os_version_full
end

when /ubuntu/
# os_family: ubuntu os_version dependent pins
case os_version
when /14.04/
puts "busser-serverspec is no longer natively supported on: " + os_version_full
when /16.04/
puts "busser-serverspec is currently supported natively on: " + os_version_full
else
puts "Your distribution is either too old, or supported without pins: " + os_version_full
end

# No helper support provided
else
puts "No Gemfile helper support exists for os_family: " + os_family
end
else
puts "No Gemfile helper support provided for this suite."
end

1 comment on commit cf3b048

@getSurreal
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scub I was trying to model your gem fix to resolve issues in centos-7.2 I have with a different formula, but when I run tests on this formula, it still fails with this error.

-----> Installing Busser plugin: busser-serverspec
       Plugin serverspec installed (version 0.5.10)
-----> Running postinstall for serverspec plugin
       /usr/share/rubygems/rubygems/installer.rb:518:in `ensure_required_ruby_version_met': bundler requires Ruby version >= 2.3.0. (Gem::InstallError)

Please sign in to comment.