Resolve gem dependencies across "supported" environments (#142)
This commit is contained in:
parent
2979af9bf5
commit
cf3b048230
81
test/integration/helpers/serverspec/Gemfile
Normal file
81
test/integration/helpers/serverspec/Gemfile
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user