diff --git a/.travis.yml b/.travis.yml index 60ed6d0..381dfae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,71 +1,71 @@ --- language: ruby bundler_args: --without system_tests script: 'SPEC_OPTS="--format documentation" bundle exec rake validate lint spec' before_install: - gem install bundler # -v x.x.x if a specific version is needed matrix: fast_finish: true include: - sudo: required dist: trusty rvm: 2.1.9 env: PUPPET_GEM_VERSION="~> 3.0" FUTURE_PARSER="yes" ORDERING="random" - sudo: required dist: trusty rvm: 2.2.2 env: PUPPET_GEM_VERSION="~> 3.0" STRICT_VARIABLES="yes" ORDERING="random" - sudo: required dist: trusty rvm: 2.1.9 env: PUPPET_GEM_VERSION="~> 4.0" STRICT_VARIABLES="yes" ORDERING="random" - sudo: required services: docker rvm: '2.3.3' env: PUPPET_INSTALL_VERSION="1.10.8" PUPPET_INSTALL_TYPE=agent BEAKER_set="centos-6-docker" - script: bundle exec rake acceptance + script: bundle exec rake beaker:suites['default',$BEAKER_set] bundler_args: --without development - sudo: required services: docker rvm: '2.3.3' env: PUPPET_INSTALL_VERSION="1.10.8" PUPPET_INSTALL_TYPE=agent BEAKER_set="centos-7-docker" - script: bundle exec rake acceptance + script: bundle exec rake beaker:suites['default',$BEAKER_set] bundler_args: --without development - sudo: required services: docker rvm: '2.3.3' env: PUPPET_INSTALL_VERSION="1.10.8" PUPPET_INSTALL_TYPE=agent BEAKER_set="debian-8-docker" - script: bundle exec rake acceptance + script: bundle exec rake beaker:suites['default',$BEAKER_set] bundler_args: --without development - sudo: required services: docker rvm: '2.3.3' env: PUPPET_INSTALL_VERSION="1.10.8" PUPPET_INSTALL_TYPE=agent BEAKER_set="ubuntu-1604-docker" - script: bundle exec rake acceptance + script: bundle exec rake beaker:suites['default',$BEAKER_set] bundler_args: --without development - sudo: required services: docker rvm: '2.3.3' - env: PUPPET_INSTALL_VERSION="1.10.8" PUPPET_INSTALL_TYPE=agent BEAKER_set="ubuntu-1404-docker" - script: bundle exec rake acceptance + env: PUPPET_INSTALL_VERSION="1.5.2" PUPPET_INSTALL_TYPE=agent BEAKER_set="ubuntu-1404-docker" + script: bundle exec rake beaker:suites['default',$BEAKER_set] bundler_args: --without development - sudo: required rvm: '2.4.0' env: PUPPET_VERSION="~> 4.0" CHECK=build DEPLOY_TO_FORGE=yes script: bundle exec rake build bundler_args: --without development branches: only: - master - /^v\d/ deploy: provider: puppetforge user: arioch password: secure: N5N2gNr0MTHY2bjBnW6FKk3qwWpYEJ+h5jM5E6058hX4f3zFYQVWwO0xXtlgJ61bG89KN4hMNhvZgYjlh+aAFMS2iNoNiBcNDI4dksu2lR4iIVeP5FIp8JnEh7jNDuldaIqHo2GKjRSkl70lcNC6NzYcAAsiyFvkn5XEDLkbKR8= on: tags: true # all_branches is required to use tags all_branches: true # Only publish the build marked with "DEPLOY_TO_FORGE" condition: "$DEPLOY_TO_FORGE = yes" diff --git a/Gemfile b/Gemfile index 51d46d8..47f2821 100644 --- a/Gemfile +++ b/Gemfile @@ -1,56 +1,57 @@ source ENV['GEM_SOURCE'] || "https://rubygems.org" def location_for(place, fake_version = nil) if place =~ /^(git[:@][^#]*)#(.*)/ [fake_version, { :git => $1, :branch => $2, :require => false }].compact elsif place =~ /^file:\/\/(.*)/ ['>= 0', { :path => File.expand_path($1), :require => false }] else [place, { :require => false }] end end group :test do gem 'puppetlabs_spec_helper', '~> 1.2.2', :require => false gem 'rspec-puppet', :require => false, :git => 'https://github.com/rodjek/rspec-puppet.git' gem 'rspec-puppet-facts', :require => false gem 'rspec-puppet-utils', :require => false gem 'puppet-lint-absolute_classname-check', :require => false gem 'puppet-lint-leading_zero-check', :require => false gem 'puppet-lint-trailing_comma-check', :require => false gem 'puppet-lint-version_comparison-check', :require => false gem 'puppet-lint-classes_and_types_beginning_with_digits-check', :require => false gem 'puppet-lint-unquoted_string-check', :require => false gem 'puppet-lint-variable_contains_upcase', :require => false gem 'metadata-json-lint', :require => false gem 'puppet-strings', '1.1.0', :require => false gem 'puppet_facts', :require => false gem 'rubocop-rspec', '~> 1.6', :require => false if RUBY_VERSION >= '2.3.0' gem 'json_pure', '<= 2.0.1', :require => false if RUBY_VERSION < '2.0.0' gem 'safe_yaml', '~> 1.0.4', :require => false - gem 'listen', '<= 3.0.6', :require => false gem 'puppet-syntax', :require => false, git: 'https://github.com/gds-operations/puppet-syntax.git' - gem 'pry' - gem 'rb-readline' - gem 'redis', :require => false + gem 'pry', :require => false + gem 'rb-readline', :require => false + gem 'redis', '3.3.3', :require => false gem 'mock_redis', :require => false + gem 'rack', '1.6.8', :require => false + gem 'simp-rake-helpers', '3.6.0', :require => false end group :development do gem 'puppet-blacksmith' - gem 'travis' - gem 'github_changelog_generator' + gem 'github_changelog_generator', '1.13.2' end group :system_tests do - gem "beaker", '2.41.0', :require => false - gem "beaker-rspec", '5.6.0', :require => false + gem "beaker" + gem "beaker-rspec" gem 'beaker-puppet_install_helper', :require => false gem 'beaker-module_install_helper' gem 'vagrant-wrapper' + gem 'simp-beaker-helpers', :git => 'https://github.com/petems/rubygem-simp-beaker-helpers' end ENV['PUPPET_GEM_VERSION'].nil? ? puppetversion = '~> 4.0' : puppetversion = ENV['PUPPET_GEM_VERSION'].to_s gem 'puppet', puppetversion, :require => false, :groups => [:test] # vim: syntax=ruby diff --git a/Rakefile b/Rakefile index b8bf76d..574450f 100644 --- a/Rakefile +++ b/Rakefile @@ -1,49 +1,52 @@ require 'puppetlabs_spec_helper/rake_tasks' require 'puppet-lint/tasks/puppet-lint' require 'puppet-syntax/tasks/puppet-syntax' require 'puppet-strings/tasks' +require 'simp/rake/pupmod/helpers' + +Simp::Rake::Pupmod::Helpers.new(File.dirname(__FILE__)) # These two gems aren't always present, for instance # on Travis with --without development begin require 'puppet_blacksmith/rake_tasks' rescue LoadError end PuppetLint.configuration.fail_on_warnings PuppetLint.configuration.send('relative') PuppetLint.configuration.send('disable_80chars') PuppetLint.configuration.send('disable_140chars') PuppetLint.configuration.send('disable_class_inherits_from_params_class') PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"] exclude_paths = [ "pkg/**/*", "vendor/**/*", "spec/**/*", ] PuppetLint.configuration.ignore_paths = exclude_paths PuppetSyntax.exclude_paths = exclude_paths desc "Run acceptance tests" RSpec::Core::RakeTask.new(:acceptance) do |t| t.pattern = 'spec/acceptance' end desc "Run syntax, lint, and spec tests." task :test => [ :syntax, :lint, :spec, ] begin require 'github_changelog_generator/task' GitHubChangelogGenerator::RakeTask.new :changelog do |config| version = (Blacksmith::Modulefile.new).version config.future_release = "v#{version}" config.header = "# Change log\n\nAll notable changes to this project will be documented in this file." config.exclude_labels = %w{duplicate question invalid wontfix modulesync} end rescue LoadError end diff --git a/spec/acceptance/redis_adminstration_spec.rb b/spec/acceptance/suites/default/redis_adminstration_spec.rb similarity index 99% rename from spec/acceptance/redis_adminstration_spec.rb rename to spec/acceptance/suites/default/redis_adminstration_spec.rb index f3f6e6e..e0db9aa 100644 --- a/spec/acceptance/redis_adminstration_spec.rb +++ b/spec/acceptance/suites/default/redis_adminstration_spec.rb @@ -1,40 +1,38 @@ require 'spec_helper_acceptance' # systcl settings are untestable in docker unless default['hypervisor'] =~ /docker/ describe 'redis::administration' do it 'should run successfully' do pp = <<-EOS include redis include redis::administration EOS # Apply twice to ensure no errors the second time. apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) end it 'should set overcommit_memory to 1 in a seperate sysctl file' do shell('/bin/cat /proc/sys/vm/overcommit_memory') do |result| expect(result.stdout).to match(/^1$/) end end it 'should disable thp' do shell('/bin/cat /sys/kernel/mm/transparent_hugepage/enabled') do |result| expect(result.stdout).to match(/^always madvise \[never\]$/) end end it 'should set somaxconn to 65535' do shell('/bin/cat /proc/sys/net/core/somaxconn') do |result| expect(result.stdout).to match(/^65535$/) end end it 'should show no warnings about kernel settings in logs' do shell('timeout 1s redis-server --port 7777 --loglevel verbose', { :acceptable_exit_codes => [0,124] }) do |result| expect(result.stdout).not_to match(/WARNING/) expect(result.exit_code).to match(124) end end end end - - diff --git a/spec/acceptance/redis_debian_run_dir_spec.rb b/spec/acceptance/suites/default/redis_debian_run_dir_spec.rb similarity index 100% rename from spec/acceptance/redis_debian_run_dir_spec.rb rename to spec/acceptance/suites/default/redis_debian_run_dir_spec.rb diff --git a/spec/acceptance/redis_multi_instances_one_host_spec.rb b/spec/acceptance/suites/default/redis_multi_instances_one_host_spec.rb similarity index 100% rename from spec/acceptance/redis_multi_instances_one_host_spec.rb rename to spec/acceptance/suites/default/redis_multi_instances_one_host_spec.rb diff --git a/spec/acceptance/redis_multi_node_spec.rb b/spec/acceptance/suites/default/redis_multi_node_spec.rb similarity index 100% rename from spec/acceptance/redis_multi_node_spec.rb rename to spec/acceptance/suites/default/redis_multi_node_spec.rb diff --git a/spec/acceptance/redis_sentinel_one_node_spec.rb b/spec/acceptance/suites/default/redis_sentinel_one_node_spec.rb similarity index 100% rename from spec/acceptance/redis_sentinel_one_node_spec.rb rename to spec/acceptance/suites/default/redis_sentinel_one_node_spec.rb diff --git a/spec/acceptance/redis_spec.rb b/spec/acceptance/suites/default/redis_spec.rb similarity index 100% rename from spec/acceptance/redis_spec.rb rename to spec/acceptance/suites/default/redis_spec.rb diff --git a/spec/acceptance/redisget_spec.rb b/spec/acceptance/suites/default/redisget_spec.rb similarity index 100% rename from spec/acceptance/redisget_spec.rb rename to spec/acceptance/suites/default/redisget_spec.rb