-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* revive travis * improve smoke tests * fix typos and bump requirements * refresh tests * gitignore * add gitlab-ci * ci install non-free repo * mock systemd in CI * travis: use vm bacause smoke tests require sudo
- Loading branch information
Showing
18 changed files
with
383 additions
and
95 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
fixtures: | ||
repositories: | ||
stdlib: "git://github.com/puppetlabs/puppetlabs-stdlib.git" | ||
concat: "git://github.com/ripienaar/puppet-concat.git" | ||
symlinks: | ||
conserver: "#{source_dir}" | ||
stdlib: | ||
repo: "https://github.com/puppetlabs/puppetlabs-stdlib.git" | ||
concat: | ||
repo: "https://github.com/puppetlabs/puppetlabs-concat.git" | ||
# symlinks: | ||
# patterndb: "#{source_dir}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,5 @@ spec/fixtures | |
.bundle | ||
.gem | ||
Gemfile.lock | ||
/vendor/ | ||
/.rake_tasks~ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
--- | ||
stages: | ||
- test_2.4.1 | ||
- test_2.1.9 | ||
|
||
before_script: | ||
- bundle -v | ||
- rm Gemfile.lock || true | ||
- gem update --system | ||
- gem update bundler | ||
- gem --version | ||
- bundle -v | ||
- bundle install --without system_tests | ||
- bundle exec puppet --version | ||
- bundle exec puppet module build | ||
- bundle exec puppet module install pkg/*.tar.gz | ||
- sed -i 's/main$/& contrib non-free/' /etc/apt/sources.list | ||
- apt-get update | ||
- apt-get install conserver-server conserver-client -y | ||
- conserver -v | ||
- mkdir -p /tmp/conserver | ||
- git clone https://github.com/gdraheim/docker-systemctl-replacement /tmp/dsr | ||
- cp /tmp/dsr/files/docker/systemctl.py /usr/bin/systemctl | ||
|
||
rubocop-2.4.1: | ||
stage: test_2.4.1 | ||
image: ruby:2.4.1 | ||
allow_failure: true | ||
script: | ||
- bundle exec rake rubocop | ||
|
||
syntax-2.4.1: | ||
stage: test_2.4.1 | ||
image: ruby:2.4.1 | ||
script: | ||
- bundle exec rake syntax lint | ||
|
||
metadata-2.4.1: | ||
stage: test_2.4.1 | ||
image: ruby:2.4.1 | ||
script: | ||
- bundle exec rake metadata_lint | ||
|
||
rspec-puppet-2.4.1: | ||
stage: test_2.4.1 | ||
image: ruby:2.4.1 | ||
variables: | ||
PUPPET_GEM_VERSION: ~> 5.0 | ||
CHECK: spec | ||
script: | ||
- bundle update | ||
- bundle exec rake $CHECK | ||
|
||
smoke-puppet-2.4.1: | ||
stage: test_2.4.1 | ||
image: ruby:2.4.1 | ||
variables: | ||
PUPPET_GEM_VERSION: ~> 5.0 | ||
script: | ||
- bundle update | ||
- bundle exec ./smoke/test -d | ||
|
||
rubocop-2.1.9: | ||
stage: test_2.1.9 | ||
image: ruby:2.1.9 | ||
allow_failure: true | ||
script: | ||
- bundle exec rake rubocop | ||
|
||
syntax-2.1.9: | ||
stage: test_2.1.9 | ||
image: ruby:2.1.9 | ||
script: | ||
- bundle exec rake syntax lint | ||
|
||
metadata-2.1.9: | ||
stage: test_2.1.9 | ||
image: ruby:2.1.9 | ||
script: | ||
- bundle exec rake metadata_lint | ||
|
||
rspec-puppet-2.1.9: | ||
stage: test_2.1.9 | ||
image: ruby:2.1.9 | ||
variables: | ||
PUPPET_GEM_VERSION: ~> 4.0 | ||
CHECK: spec | ||
script: | ||
- bundle update | ||
- bundle exec rake $CHECK | ||
|
||
smoke-puppet-2.1.9: | ||
stage: test_2.1.9 | ||
image: ruby:2.1.9 | ||
variables: | ||
PUPPET_GEM_VERSION: ~> 4.0 | ||
script: | ||
- bundle update | ||
- bundle exec ./smoke/test | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,36 @@ | ||
--- | ||
dist: trusty | ||
sudo: true | ||
language: ruby | ||
bundler_args: --without development | ||
before_install: rm Gemfile.lock || true | ||
before_script: | ||
- bundle install | ||
- bundle exec puppet --version | ||
- bundle exec puppet module build | ||
- bundle exec puppet module install pkg/*.tar.gz | ||
- sudo sed -i 's/main$/& contrib non-free/' /etc/apt/sources.list | ||
- sudo apt update | ||
- sudo apt install conserver-server conserver-client -y | ||
- conserver -v | ||
- mkdir -p /tmp/conserver | ||
script: | ||
- bundle exec rake validate | ||
- bundle exec rake syntax lint | ||
- bundle exec rake metadata_lint | ||
- bundle exec rake spec | ||
- 'sudo -E env PATH=$PATH bundle exec puppet module install pkg/*.tar.gz' | ||
- 'sudo -E env PATH=$PATH bundle exec puppet --version' | ||
- 'sudo -E env PATH=$PATH bundle exec ./smoke/test -d' | ||
rvm: | ||
- 1.8.7 | ||
- 1.9.3 | ||
- 2.0.0 | ||
- 2.1.0 | ||
script: bundle exec rake test | ||
- 2.1.9 | ||
- 2.3.4 | ||
- 2.4.1 | ||
env: | ||
- PUPPET_VERSION="~> 3.5.0" | ||
- PUPPET_VERSION="~> 3.6.0" | ||
- PUPPET_VERSION="~> 3.7.0" | ||
- PUPPET_VERSION="~> 3.8.0" | ||
matrix: | ||
- PUPPET_GEM_VERSION="~> 4.9.1" FIXTURES_YML=.fixtures.yml | ||
- PUPPET_GEM_VERSION="~> 4.10.10" FIXTURES_YML=.fixtures.yml | ||
- PUPPET_GEM_VERSION="~> 5.0.0" FIXTURES_YML=.fixtures.yml | ||
- PUPPET_GEM_VERSION="~> 5.4.0" FIXTURES_YML=.fixtures.yml | ||
- PUPPET_GEM_VERSION="~> 5.5.0" FIXTURES_YML=.fixtures.yml | ||
matrix: | ||
allow_failures: | ||
- rvm: 1.8.7 | ||
exclude: | ||
- rvm: 1.9.3 | ||
env: PUPPET_VERSION="~> 2.7.0" | ||
- rvm: 2.0.0 | ||
env: PUPPET_VERSION="~> 2.7.0" | ||
- rvm: 2.1.0 | ||
env: PUPPET_VERSION="~> 2.7.0" | ||
- rvm: 2.1.0 | ||
env: PUPPET_VERSION="~> 3.2.0" | ||
- rvm: 2.1.0 | ||
env: PUPPET_VERSION="~> 3.3.0" | ||
- rvm: 2.1.0 | ||
env: PUPPET_VERSION="~> 3.4.0" | ||
fast_finish: true | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,126 @@ | ||
source "https://rubygems.org" | ||
source ENV['GEM_SOURCE'] || 'https://rubygems.org' | ||
|
||
group :test do | ||
gem "rake" | ||
gem "puppet", ENV['PUPPET_VERSION'] || '~> 3.6.0' | ||
gem "rspec-puppet", :git => 'https://github.com/rodjek/rspec-puppet.git' | ||
gem "puppet-syntax" | ||
gem "puppetlabs_spec_helper" | ||
# Latest puppet-lint required for ignore paths to work | ||
gem 'puppet-lint', :git => 'https://github.com/rodjek/puppet-lint.git' | ||
def location_for(place_or_version, fake_version = nil) | ||
if place_or_version =~ %r{\A(git[:@][^#]*)#(.*)} | ||
[fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact | ||
elsif place_or_version =~ %r{\Afile:\/\/(.*)} | ||
['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }] | ||
else | ||
[place_or_version, { require: false }] | ||
end | ||
end | ||
|
||
def gem_type(place_or_version) | ||
if place_or_version =~ %r{\Agit[:@]} | ||
:git | ||
elsif !place_or_version.nil? && place_or_version.start_with?('file:') | ||
:file | ||
else | ||
:gem | ||
end | ||
end | ||
|
||
ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments | ||
minor_version = ruby_version_segments[0..1].join('.') | ||
|
||
group :development do | ||
gem "travis" | ||
gem "travis-lint" | ||
gem "beaker" | ||
gem "beaker-rspec" | ||
gem "vagrant-wrapper" | ||
gem "puppet-blacksmith" | ||
gem "guard-rake" | ||
gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0') | ||
gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0') | ||
gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0') | ||
gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9') | ||
gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby] | ||
gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby] | ||
gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw] | ||
gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw] | ||
end | ||
|
||
puppet_version = ENV['PUPPET_GEM_VERSION'] | ||
puppet_type = gem_type(puppet_version) | ||
facter_version = ENV['FACTER_GEM_VERSION'] | ||
hiera_version = ENV['HIERA_GEM_VERSION'] | ||
|
||
def puppet_older_than?(version) | ||
puppet_version = ENV['PUPPET_GEM_VERSION'] | ||
!puppet_version.nil? && | ||
Gem::Version.correct?(puppet_version) && | ||
Gem::Requirement.new("< #{version}").satisfied_by?(Gem::Version.new(puppet_version.dup)) | ||
end | ||
|
||
gems = {} | ||
|
||
gems['puppet'] = location_for(puppet_version) | ||
|
||
# If facter or hiera versions have been specified via the environment | ||
# variables, use those versions. If not, and if the puppet version is < 3.5.0, | ||
# use known good versions of both for puppet < 3.5.0. | ||
if facter_version | ||
gems['facter'] = location_for(facter_version) | ||
elsif puppet_type == :gem && puppet_older_than?('3.5.0') | ||
gems['facter'] = ['>= 1.6.11', '<= 1.7.5', require: false] | ||
end | ||
|
||
if hiera_version | ||
gems['hiera'] = location_for(ENV['HIERA_GEM_VERSION']) | ||
elsif puppet_type == :gem && puppet_older_than?('3.5.0') | ||
gems['hiera'] = ['>= 1.0.0', '<= 1.3.0', require: false] | ||
end | ||
|
||
if Gem.win_platform? && (puppet_type != :gem || puppet_older_than?('3.5.0')) | ||
# For Puppet gems < 3.5.0 (tested as far back as 3.0.0) on Windows | ||
if puppet_type == :gem | ||
gems['ffi'] = ['1.9.0', require: false] | ||
gems['minitar'] = ['0.5.4', require: false] | ||
gems['win32-eventlog'] = ['0.5.3', '<= 0.6.5', require: false] | ||
gems['win32-process'] = ['0.6.5', '<= 0.7.5', require: false] | ||
gems['win32-security'] = ['~> 0.1.2', '<= 0.2.5', require: false] | ||
gems['win32-service'] = ['0.7.2', '<= 0.8.8', require: false] | ||
else | ||
gems['ffi'] = ['~> 1.9.0', require: false] | ||
gems['minitar'] = ['~> 0.5.4', require: false] | ||
gems['win32-eventlog'] = ['~> 0.5', '<= 0.6.5', require: false] | ||
gems['win32-process'] = ['~> 0.6', '<= 0.7.5', require: false] | ||
gems['win32-security'] = ['~> 0.1', '<= 0.2.5', require: false] | ||
gems['win32-service'] = ['~> 0.7', '<= 0.8.8', require: false] | ||
end | ||
|
||
gems['win32-dir'] = ['~> 0.3', '<= 0.4.9', require: false] | ||
|
||
if RUBY_VERSION.start_with?('1.') | ||
gems['win32console'] = ['1.3.2', require: false] | ||
# sys-admin was removed in Puppet 3.7.0 and doesn't compile under Ruby 2.x | ||
gems['sys-admin'] = ['1.5.6', require: false] | ||
end | ||
|
||
# Puppet < 3.7.0 requires these. | ||
# Puppet >= 3.5.0 gem includes these as requirements. | ||
# The following versions are tested to work with 3.0.0 <= puppet < 3.7.0. | ||
gems['win32-api'] = ['1.4.8', require: false] | ||
gems['win32-taskscheduler'] = ['0.2.2', require: false] | ||
gems['windows-api'] = ['0.4.3', require: false] | ||
gems['windows-pr'] = ['1.2.3', require: false] | ||
elsif Gem.win_platform? | ||
# If we're using a Puppet gem on Windows which handles its own win32-xxx gem | ||
# dependencies (>= 3.5.0), set the maximum versions (see PUP-6445). | ||
gems['win32-dir'] = ['<= 0.4.9', require: false] | ||
gems['win32-eventlog'] = ['<= 0.6.5', require: false] | ||
gems['win32-process'] = ['<= 0.7.5', require: false] | ||
gems['win32-security'] = ['<= 0.2.5', require: false] | ||
gems['win32-service'] = ['<= 0.8.8', require: false] | ||
end | ||
|
||
gems.each do |gem_name, gem_params| | ||
gem gem_name, *gem_params | ||
end | ||
|
||
# Evaluate Gemfile.local and ~/.gemfile if they exist | ||
extra_gemfiles = [ | ||
"#{__FILE__}.local", | ||
File.join(Dir.home, '.gemfile'), | ||
] | ||
|
||
extra_gemfiles.each do |gemfile| | ||
if File.file?(gemfile) && File.readable?(gemfile) | ||
eval(File.read(gemfile), binding) | ||
end | ||
end | ||
# vim: syntax=ruby |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,19 @@ | ||
require 'rubygems' | ||
require 'puppetlabs_spec_helper/rake_tasks' | ||
require 'puppet-lint/tasks/puppet-lint' | ||
require 'puppet-syntax/tasks/puppet-syntax' | ||
|
||
# These two gems aren't always present, for instance | ||
# on Travis with --without development | ||
begin | ||
require 'puppet_blacksmith/rake_tasks' | ||
rescue LoadError | ||
end | ||
require 'puppet-lint/tasks/puppet-lint' | ||
|
||
PuppetLint.configuration.fail_on_warnings | ||
PuppetLint.configuration.send('disable_80chars') | ||
PuppetLint.configuration.send('disable_single_quote_string_with_variables') | ||
PuppetLint.configuration.relative = true | ||
PuppetLint.configuration.send("disable_80chars") | ||
PuppetLint.configuration.log_format = "%{path}:%{linenumber}:%{check}:%{KIND}:%{message}" | ||
PuppetLint.configuration.fail_on_warnings = true | ||
|
||
# Forsake support for Puppet 2.6.2 for the benefit of cleaner code. | ||
# http://puppet-lint.com/checks/class_parameter_defaults/ | ||
PuppetLint.configuration.send('disable_class_parameter_defaults') | ||
# http://puppet-lint.com/checks/class_inherits_from_params_class/ | ||
PuppetLint.configuration.send('disable_class_inherits_from_params_class') | ||
ignore_paths = ['vendor/**/*', 'spec/**/*', 'smoke/**/*', 'pkg/**/*'] | ||
|
||
exclude_paths = [ | ||
"pkg/**/*", | ||
"vendor/**/*", | ||
"spec/**/*", | ||
"smoke/**/*", | ||
] | ||
PuppetLint.configuration.ignore_paths = exclude_paths | ||
PuppetSyntax.exclude_paths = exclude_paths | ||
PuppetSyntax.exclude_paths = ignore_paths | ||
|
||
desc "Run acceptance tests" | ||
RSpec::Core::RakeTask.new(:acceptance) do |t| | ||
t.pattern = 'spec/acceptance' | ||
#PuppetLint.configuration.ignore_paths = ignore_paths | ||
PuppetLint::RakeTask.new :lint do |config| | ||
config.ignore_paths = ignore_paths | ||
end | ||
|
||
desc "Run syntax, lint, and spec tests." | ||
task :test => [ | ||
:syntax, | ||
:lint, | ||
:spec, | ||
] | ||
task :default => [:spec, :lint] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.