- rubocop-rspec
.travis.yml:
- docker_sets:
- - set: docker/debian-8
- - set: docker/ubuntu-14.04
- docker_defaults:
- bundler_args: ""
- secure: ""
- branches:
- - release
+ unmanaged: true
appveyor.yml:
delete: true
Gemfile:
required:
- ':system_tests':
- - gem: 'puppet-module-posix-system-r#{minor_version}'
- platforms: ruby
- - gem: 'puppet-module-win-system-r#{minor_version}'
- platforms:
- - mswin
- - mingw
- - x64_mingw
+ ':development':
- gem: 'puppet_litmus'
platforms:
- ruby
- mingw
- x64_mingw
condition: "ENV['PUPPET_GEM_VERSION'].nil? or ENV['PUPPET_GEM_VERSION'] !~ %r{ 5}"
+ - gem: 'serverspec'
optional:
':development':
- gem: 'github_changelog_generator'
bundler_args:
dist: trusty
env: PLATFORMS=deb_puppet5
- rvm: 2.5.1
+ rvm: 2.5.3
before_script:
- bundle exec rake 'litmus:provision_list[travis_deb]'
- bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'
-
bundler_args:
dist: trusty
- env: PLATFORM=centos:deb_puppet6
- rvm: 2.5.1
+ env: PLATFORM=deb_puppet6
+ rvm: 2.5.3
before_script:
- bundle exec rake 'litmus:provision_list[travis_deb]'
- bundle exec bolt command run 'apt-get install wget -y' --inventoryfile inventory.yaml --nodes='localhost*'
gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby]
gem "puppet-module-win-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-module-win-dev-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw]
+ gem "puppet_litmus", require: false, platforms: [:ruby, :mswin, :mingw, :x64_mingw] if ENV['PUPPET_GEM_VERSION'].nil? or ENV['PUPPET_GEM_VERSION'] !~ %r{ 5}
+ gem "serverspec", require: false
gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')
gem "puppet-lint-i18n", require: false
end
-group :system_tests do
- gem "puppet-module-posix-system-r#{minor_version}", require: false, platforms: [:ruby]
- gem "puppet-module-win-system-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
- gem "puppet_litmus", require: false, platforms: [:ruby, :mswin, :mingw, :x64_mingw] if ENV['PUPPET_GEM_VERSION'].nil? or ENV['PUPPET_GEM_VERSION'] !~ %r{ 5}
-end
puppet_version = ENV['PUPPET_GEM_VERSION']
facter_version = ENV['FACTER_GEM_VERSION']
--- /dev/null
+team-modules/puppetlabs-apt:
+ PreBuild:
+ - source /opt/rh/rh-ruby25/enable
+ - echo "--- LETS update BUNDLER ---"
+ - bundle install --path vendor/bundle --jobs 3
+ Build:
+ - echo "--- PROVISIONING ---"
+ - source /opt/rh/rh-ruby25/enable
+ - bundle exec rake litmus:provision_list[release_checks]
+ - cat inventory.yaml
+ - echo "--- AGENT INSTALLATION ---"
+ - bundle exec rake litmus:install_agent
+ - echo "--- MODULE INSTALLATION ---"
+ - bundle exec rake litmus:install_module
+ - echo "--- TESTS RUNNING ---"
+ - bundle exec rake litmus:acceptance:parallel
+ AfterBuildSuccess:
+ - source /opt/rh/rh-ruby25/enable
+ - bundle exec rake litmus:tear_down
+ AfterBuildFailure:
+ - source /opt/rh/rh-ruby25/enable
+ - bundle exec rake litmus:tear_down
+ CommitData:
+ - RepoType: Git
+ - RepoPath: .
"version_requirement": ">= 5.5.10 < 7.0.0"
}
],
- "template-url": "https://github.com/puppetlabs/pdk-templates#master",
+ "template-url": "https://github.com/puppetlabs/pdk-templates/#master",
"template-ref": "heads/master-0-g7827fc2",
"pdk-version": "1.10.0"
}
waffle_deb:
provisioner: docker
images: ['waffleimage/debian8', 'waffleimage/debian9', 'waffleimage/ubuntu14.04', 'waffleimage/ubuntu16.04', 'waffleimage/ubuntu18.04']
+release_checks:
+ provisioner: vmpooler
+ images: ['debian-8-x86_64', 'debian-9-x86_64', 'ubuntu-1404-x86_64', 'ubuntu-1604-x86_64', 'ubuntu-1804-x86_64']
end
describe 'refresh' do
- if os[:family] == 'debian' && (os[:distro][:codename] == 'stretch' || os[:distro][:codename] == 'bionic')
- # Set Debian Stetch specific value of puppetlabs_exp_check_command
+ if ['8', '14.04', '16.04'].include?(host_inventory['facter']['os']['release']['major'])
+ # older OSes use puppetlabs_exp_check_command
+ let(:puppetlabs_exp_check_command) { PUPPETLABS_EXP_CHECK_COMMAND }
+
+ else
+ # Set Debian Stetch and newer OSes puppetlabs_exp_check_command
let(:puppetlabs_exp_check_command) { DEBIAN_PUPPETLABS_EXP_CHECK_COMMAND }
# Ensure dirmngr package is installed
apply_manifest(refresh_check_for_dirmngr_pp, acceptable_exit_codes: [0, 2])
- else
- # Set default value of puppetlabs_exp_check_command
- let(:puppetlabs_exp_check_command) { PUPPETLABS_EXP_CHECK_COMMAND }
end
before(:each) do
# Delete the Puppet Labs Release Key and install an expired version of the key
# run a test task
require 'spec_helper_acceptance'
-describe 'apt tasks', if: pe_install? && puppet_version =~ %r{(5\.\d\.\d)} && fact_on(master, 'osfamily') == 'Debian' do
+describe 'apt tasks' do
describe 'update' do
it 'updates package lists' do
- result = run_task(task_name: 'apt', params: 'action=update')
- expect_multiple_regexes(result: result, regexes: [%r{Reading package lists}, %r{Job completed. 1/1 nodes succeeded}])
+ result = run_bolt_task('apt', 'action' => 'update')
+ expect(result.stdout).to contain(%r{Reading package lists})
end
end
describe 'upgrade' do
it 'upgrades packages' do
- result = run_task(task_name: 'apt', params: 'action=upgrade')
- expect_multiple_regexes(result: result, regexes: [%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded}, %r{Job completed. 1/1 nodes succeeded}])
+ result = run_bolt_task('apt', 'action' => 'upgrade')
+ expect(result.stdout).to contain(%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded})
end
end
describe 'dist-upgrade' do
it 'dist-upgrades packages' do
- result = run_task(task_name: 'apt', params: 'action=dist-upgrade')
- expect_multiple_regexes(result: result, regexes: [%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded}, %r{Job completed. 1/1 nodes succeeded}])
+ result = run_bolt_task('apt', 'action' => 'dist-upgrade')
+ expect(result.stdout).to contain(%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded})
end
end
describe 'autoremove' do
it 'autoremoves obsolete packages' do
- result = run_task(task_name: 'apt', params: 'action=autoremove')
- expect_multiple_regexes(result: result, regexes: [%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded}, %r{Job completed. 1/1 nodes succeeded}])
+ result = run_bolt_task('apt', 'action' => 'autoremove')
+ expect(result.stdout).to contain(%r{\d+ upgraded, \d+ newly installed, \d+ to remove and \d+ not upgraded})
end
end
end
require 'spec_helper_acceptance_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_acceptance_local.rb'))
include PuppetLitmus
-UNSUPPORTED_PLATFORMS = ['RedHat', 'Suse', 'windows', 'AIX', 'Solaris'].freeze
-MAX_RETRY_COUNT = 5
-RETRY_WAIT = 3
-ERROR_MATCHER = %r{(no valid OpenPGP data found|keyserver timed out|keyserver receive failed)}
-
-# This method allows a block to be passed in and if an exception is raised
-# that matches the 'error_matcher' matcher, the block will wait a set number
-# of seconds before retrying.
-# Params:
-# - max_retry_count - Max number of retries
-# - retry_wait_interval_secs - Number of seconds to wait before retry
-# - error_matcher - Matcher which the exception raised must match to allow retry
-# Example Usage:
-# retry_on_error_matching(3, 5, /OpenGPG Error/) do
-# apply_manifest(pp, :catch_failures => true)
-# end
-def retry_on_error_matching(max_retry_count = MAX_RETRY_COUNT, retry_wait_interval_secs = RETRY_WAIT, error_matcher = ERROR_MATCHER)
- try = 0
- begin
- puts "retry_on_error_matching: try #{try}" unless try.zero?
- try += 1
- yield
- rescue StandardError => e
- raise(_('Attempted this %{value0} times. Raising %{value1}') % { value0: max_retry_count, value1: e }) unless try < max_retry_count && (error_matcher.nil? || e.message =~ error_matcher)
- sleep retry_wait_interval_secs
- retry
- end
-end
-
-def pe_install?
- false
-end
-
if ENV['TARGET_HOST'].nil? || ENV['TARGET_HOST'] == 'localhost'
puts 'Running tests against this machine !'
if Gem.win_platform?
end
set :host, options[:host_name] || host
set :ssh_options, options
- set :request_pty, true
elsif target_in_group(inventory_hash, ENV['TARGET_HOST'], 'winrm_nodes')
require 'winrm'
winrm = WinRM::Connection.new opts
Specinfra.configuration.winrm = winrm
end
-
- lsb_package = <<-MANIFEST
- package { 'lsb-release':
- ensure => installed,
- }
- MANIFEST
-
- apply_manifest(lsb_package)
- run_shell('puppet module install stahnma/epel')
end
--- /dev/null
+# frozen_string_literal: true
+
+UNSUPPORTED_PLATFORMS = ['RedHat', 'Suse', 'windows', 'AIX', 'Solaris'].freeze
+MAX_RETRY_COUNT = 5
+RETRY_WAIT = 3
+ERROR_MATCHER = %r{(no valid OpenPGP data found|keyserver timed out|keyserver receive failed)}
+
+# this is needed for puppet facts / apply
+lsb_package = <<-MANIFEST
+package { 'lsb-release':
+ ensure => installed,
+}
+MANIFEST
+
+include PuppetLitmus
+apply_manifest(lsb_package)
+
+# This method allows a block to be passed in and if an exception is raised
+# that matches the 'error_matcher' matcher, the block will wait a set number
+# of seconds before retrying.
+# Params:
+# - max_retry_count - Max number of retries
+# - retry_wait_interval_secs - Number of seconds to wait before retry
+# - error_matcher - Matcher which the exception raised must match to allow retry
+# Example Usage:
+# retry_on_error_matching(3, 5, /OpenGPG Error/) do
+# apply_manifest(pp, :catch_failures => true)
+# end
+
+def retry_on_error_matching(max_retry_count = MAX_RETRY_COUNT, retry_wait_interval_secs = RETRY_WAIT, error_matcher = ERROR_MATCHER)
+ try = 0
+ begin
+ puts "retry_on_error_matching: try #{try}" unless try.zero?
+ try += 1
+ yield
+ rescue StandardError => e
+ raise('Attempted this %{value0} times. Raising %{value1}' % { value0: max_retry_count, value1: e }) unless try < max_retry_count && (error_matcher.nil? || e.message =~ error_matcher)
+ sleep retry_wait_interval_secs
+ retry
+ end
+end