Skip to content

Commit

Permalink
Major updates (see description)
Browse files Browse the repository at this point in the history
* Drop Puppet 5 support
* Add Puppet 7 support
* Drop EL6 support
* Add Ubuntu 20.04 support
  • Loading branch information
treydock committed Mar 25, 2021
1 parent c7a5c12 commit fa7138c
Show file tree
Hide file tree
Showing 17 changed files with 205 additions and 222 deletions.
84 changes: 84 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
name: CI

on:
push:
branches:
- main
- master
pull_request:

jobs:
unit:
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.allow_failure }}
strategy:
fail-fast: false
matrix:
include:
- ruby: 2.5.7
puppet: 6
fixtures: .fixtures.yml
allow_failure: false
- ruby: 2.7.0
puppet: 7
fixtures: .fixtures.yml
allow_failure: false
env:
BUNDLE_WITHOUT: system_tests:release
PUPPET_GEM_VERSION: "~> ${{ matrix.puppet }}.0"
FACTER_GEM_VERSION: "< 4.0"
FIXTURES_YML: ${{ matrix.fixtures }}
name: Puppet ${{ matrix.puppet }} (Ruby ${{ matrix.ruby }})
steps:
- uses: actions/checkout@v2
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
bundler: '2.1.0'
- name: Validate
run: bundle exec rake check:symlinks check:git_ignore check:dot_underscore check:test_file rubocop syntax lint metadata_lint
- name: Run tests
run: bundle exec rake parallel_spec
acceptance:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
set:
- "centos-7"
- "debian-9"
- "debian-10"
- "ubuntu-1804"
puppet:
- "puppet6"
- "puppet7"
env:
BUNDLE_WITHOUT: development:release
BEAKER_debug: true
name: ${{ matrix.puppet }} ${{ matrix.set }}
steps:
- name: Enable IPv6 on docker
run: |
echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json
sudo service docker restart
# https://github.com/actions/virtual-environments/issues/181#issuecomment-610874237
- name: apparmor
run: |
set -x
sudo apt-get remove mysql-server --purge
sudo apt-get install apparmor-profiles
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
- uses: actions/checkout@v2
- name: Setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
bundler-cache: true
bundler: '2.1.0'
- name: Run tests
run: bundle exec rake beaker
env:
BEAKER_PUPPET_COLLECTION: ${{ matrix.puppet }}
BEAKER_set: ${{ matrix.set }}
30 changes: 30 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Release

on:
push:
tags:
- '*'

env:
BUNDLE_WITHOUT: system_tests

jobs:
deploy:
name: 'deploy to forge'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
bundler-cache: true
bundler: '2.1.0'
- name: Build and Deploy
env:
# Configure secrets here:
# https://docs.github.com/en/free-pro-team@latest/actions/reference/encrypted-secrets
BLACKSMITH_FORGE_USERNAME: '${{ secrets.PUPPET_FORGE_USERNAME }}'
BLACKSMITH_FORGE_API_KEY: '${{ secrets.PUPPET_FORGE_API_KEY }}'
run: bundle exec rake module:push
11 changes: 11 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ GetText/DecorateString:
Description: We don't want to decorate test output.
Exclude:
- spec/**/*
Enabled: false
RSpec/BeforeAfterAll:
Description: Beware of using after(:all) as it may cause state to leak between tests.
A necessary evil in acceptance testing.
Expand All @@ -39,6 +40,10 @@ Style/BlockDelimiters:
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
be consistent then.
EnforcedStyle: braces_for_chaining
Style/BracesAroundHashParameters:
Description: Braces are required by Ruby 2.7. Cop removed from RuboCop v0.80.0.
See https://github.com/rubocop-hq/rubocop/pull/7643
Enabled: true
Style/ClassAndModuleChildren:
Description: Compact style reduces the required amount of indentation.
EnforcedStyle: compact
Expand Down Expand Up @@ -88,6 +93,12 @@ Style/MethodCalledOnDoEndBlock:
Enabled: true
Style/StringMethods:
Enabled: true
GetText/DecorateFunctionMessage:
Enabled: false
GetText/DecorateStringFormattingUsingInterpolation:
Enabled: false
GetText/DecorateStringFormattingUsingPercent:
Enabled: false
Layout/EndOfLine:
Enabled: false
Layout/IndentHeredoc:
Expand Down
35 changes: 12 additions & 23 deletions .sync.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,16 @@
---
.travis.yml:
dist: xenial
docker_defaults:
dist: xenial
docker_sets:
- set: centos-6
collection: puppet5
- set: centos-6
collection: puppet6
- set: centos-7
collection: puppet5
- set: centos-7
collection: puppet6
- set: debian-9
collection: puppet5
- set: debian-9
collection: puppet6
- set: ubuntu-1804
collection: puppet5
- set: ubuntu-1804
collection: puppet6
user: treydock
secure: "PJEoHbcd7CBbolCPMaN7qi4UkaG7QHjTbko74bW8zqvte53zy1SDlIvbyCff4+IK+SvdRMJj+dh/PHez/J2G7YJZnYAIWgO0OblBCU20vxECNCSDGcfzjuOvvKmu6iCnX1+E8C/Hs5idsyGEik3eSJG1a18bMTFdSwhrcbPkmCjIa9FfHxqn+fOF+unMf05Os5vfbzS0TDyUJDQATCzDG0i12Nx5W76t8pd8YpzSzFqcZbjiIVbMOhLhuRxAHdBq9TgxZeYBjG5TdkkaQF+70wqsrCn8Gx643VkGsAEY2uExPv5aBk61VPpLaY8eqQPUBiumQXWQ37BA9yQ/lCx+rCOHOPG1MJZvhLdHZfoxsTWoD9uXDgfl/QGcVqiu2NYGjLB2EGdAXTSO8bmt6tXN3BKMBtkybKYT5H5F4yDrX2eoW3PaX1NhQL+AJhHO5hAczGm/v9wfwNDvIV5LJc4SRWWZdgph97ffJQdgHRt0Xwm6Wrgy7XiwTqrkqEeEsJK9lgLbJ3lfHLIZT/cZRbV7kWOT7I3X+56AQkPUtinrlECW3QgrQUWiwi1qDNHpn5IQQNs/uRPMltacqJR5Euya4+w4/xerc5Z3rZJHgUSI76N1DNxABZ0Kgd/grS/FpKeCTcXFsWV83zaTfyWXq8C0b3sicp9mg0XWSRKMPDEm4qQ="
.github/workflows/ci.yaml:
acceptance_matrix:
set:
- centos-7
- ---centos-8
- debian-9
- debian-10
- ubuntu-1804
- ubuntu-2004
puppet:
- puppet6
- puppet7
.gitlab-ci.yml:
delete: true
appveyor.yml:
Expand Down
126 changes: 0 additions & 126 deletions .travis.yml

This file was deleted.

46 changes: 10 additions & 36 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,50 +24,22 @@ group :development do
gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-module-posix-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby]
gem "activesupport", '~> 5.0', require: false
gem "codecov", '~> 0.1.10', require: false
gem "dependency_checker", '~> 0.2', require: false
gem "facterdb", '~> 0.8.1', require: false
gem "gettext-setup", '~> 0.26', require: false
gem "metadata-json-lint", '~> 2.0', require: false
gem "mocha", '~> 1.0', require: false
gem "parallel_tests", '~> 2.14.1', require: false
gem "parser", '~> 2.5.1.2', require: false
gem "pry", '~> 0.10.4', require: false
gem "puppet-debugger", '~> 0.14', require: false
gem "puppet-lint", '~> 2.3', require: false
gem "puppet_pot_generator", '~> 1.0', require: false
gem "puppet-strings", '~> 2.0', require: false
gem "puppet-resource_api", '~> 1.6', require: false
gem "puppet-syntax", '~> 2.4', require: false
gem "puppetlabs_spec_helper", '~> 2.9', require: false
gem "rainbow", '~> 2.0', require: false
gem "rspec-puppet", '~> 2.3', require: false
gem "rspec-puppet-facts", '~> 1.9.5', require: false
gem "rubocop", '~> 0.49.0', require: false
gem "rubocop-i18n", '~> 1.2.0', require: false
gem "rubocop-rspec", '~> 1.16.0', require: false
gem "rspec_junit_formatter", '~> 0.2', require: false
gem "serverspec", '~> 2.41', require: false
gem "simplecov-console", '~> 0.4.2', require: false
gem "specinfra", '2.82.2', require: false
gem "simplecov", '~> 0.14.1', require: false
gem "puppet-blacksmith", '>= 3.4.0', require: false
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-module-posix-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby]
gem "puppet-module-posix-dev-r#{minor_version}", '~> 0.4', require: false, platforms: [:ruby]
gem "puppet-module-win-default-r#{minor_version}", '~> 0.4', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-module-win-dev-r#{minor_version}", '~> 0.4', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "puppet-lint-param-docs", 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 "github_changelog_generator", 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-module-posix-system-r#{minor_version}", '~> 0.5', require: false, platforms: [:ruby]
gem "puppet-module-win-system-r#{minor_version}", '~> 0.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 4.0')
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.1')
gem "beaker-pe", require: false
gem "beaker-hostgenerator"
gem "beaker-rspec"
gem "beaker-docker", git: 'https://github.com/treydock/beaker-docker', ref: 'c6d1d3dc5f1e8b7770109793d15cfc9927eb1961'
gem "beaker-docker", *location_for(ENV['BEAKER_DOCKER_VERSION'] || '~> 0.7.0')
gem "beaker-puppet"
end

Expand All @@ -77,6 +49,8 @@ hiera_version = ENV['HIERA_GEM_VERSION']

gems = {}

gems['rake'] = [require: false]
gems['puppetlabs_spec_helper'] = [require: false]
gems['puppet'] = location_for(puppet_version)

# If facter or hiera versions have been specified via the environment
Expand Down
2 changes: 2 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# frozen_string_literal: true

require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any?
require 'puppetlabs_spec_helper/rake_tasks'
require 'puppet-syntax/tasks/puppet-syntax'
Expand Down
Loading

0 comments on commit fa7138c

Please sign in to comment.