-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #13 from keirans/enhancements
Converting module with PDK, Adding Travis CI configuration and shifting codeblock logic around to be within the confine.
- Loading branch information
Showing
13 changed files
with
391 additions
and
28 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 |
---|---|---|
@@ -0,0 +1,22 @@ | ||
.*.sw[op] | ||
.metadata | ||
.yardoc | ||
.yardwarns | ||
*.iml | ||
/.bundle/ | ||
/.idea/ | ||
/.vagrant/ | ||
/coverage/ | ||
/bin/ | ||
/doc/ | ||
/Gemfile.local | ||
/Gemfile.lock | ||
/junit/ | ||
/log/ | ||
/pkg/ | ||
/spec/fixtures/manifests/ | ||
/spec/fixtures/modules/ | ||
/tmp/ | ||
/vendor/ | ||
/convert_report.txt | ||
.DS_Store |
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,22 @@ | ||
.*.sw[op] | ||
.metadata | ||
.yardoc | ||
.yardwarns | ||
*.iml | ||
/.bundle/ | ||
/.idea/ | ||
/.vagrant/ | ||
/coverage/ | ||
/bin/ | ||
/doc/ | ||
/Gemfile.local | ||
/Gemfile.lock | ||
/junit/ | ||
/log/ | ||
/pkg/ | ||
/spec/fixtures/manifests/ | ||
/spec/fixtures/modules/ | ||
/tmp/ | ||
/vendor/ | ||
/convert_report.txt | ||
.DS_Store |
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,2 @@ | ||
--color | ||
--format documentation |
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,112 @@ | ||
--- | ||
require: rubocop-rspec | ||
AllCops: | ||
DisplayCopNames: true | ||
TargetRubyVersion: '2.1' | ||
Include: | ||
- "./**/*.rb" | ||
Exclude: | ||
- bin/* | ||
- ".vendor/**/*" | ||
- Gemfile | ||
- Rakefile | ||
- pkg/**/* | ||
- spec/fixtures/**/* | ||
- vendor/**/* | ||
Metrics/LineLength: | ||
Description: People have wide screens, use them. | ||
Max: 200 | ||
RSpec/BeforeAfterAll: | ||
Description: Beware of using after(:all) as it may cause state to leak between tests. | ||
A necessary evil in acceptance testing. | ||
Exclude: | ||
- spec/acceptance/**/*.rb | ||
RSpec/HookArgument: | ||
Description: Prefer explicit :each argument, matching existing module's style | ||
EnforcedStyle: each | ||
Style/BlockDelimiters: | ||
Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to | ||
be consistent then. | ||
EnforcedStyle: braces_for_chaining | ||
Style/ClassAndModuleChildren: | ||
Description: Compact style reduces the required amount of indentation. | ||
EnforcedStyle: compact | ||
Style/EmptyElse: | ||
Description: Enforce against empty else clauses, but allow `nil` for clarity. | ||
EnforcedStyle: empty | ||
Style/FormatString: | ||
Description: Following the main puppet project's style, prefer the % format format. | ||
EnforcedStyle: percent | ||
Style/FormatStringToken: | ||
Description: Following the main puppet project's style, prefer the simpler template | ||
tokens over annotated ones. | ||
EnforcedStyle: template | ||
Style/Lambda: | ||
Description: Prefer the keyword for easier discoverability. | ||
EnforcedStyle: literal | ||
Style/RegexpLiteral: | ||
Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168 | ||
EnforcedStyle: percent_r | ||
Style/TernaryParentheses: | ||
Description: Checks for use of parentheses around ternary conditions. Enforce parentheses | ||
on complex expressions for better readability, but seriously consider breaking | ||
it up. | ||
EnforcedStyle: require_parentheses_when_complex | ||
Style/TrailingCommaInArguments: | ||
Description: Prefer always trailing comma on multiline argument lists. This makes | ||
diffs, and re-ordering nicer. | ||
EnforcedStyleForMultiline: comma | ||
Style/TrailingCommaInLiteral: | ||
Description: Prefer always trailing comma on multiline literals. This makes diffs, | ||
and re-ordering nicer. | ||
EnforcedStyleForMultiline: comma | ||
Style/SymbolArray: | ||
Description: Using percent style obscures symbolic intent of array's contents. | ||
EnforcedStyle: brackets | ||
RSpec/MessageSpies: | ||
EnforcedStyle: receive | ||
Style/CollectionMethods: | ||
Enabled: true | ||
Style/MethodCalledOnDoEndBlock: | ||
Enabled: true | ||
Style/StringMethods: | ||
Enabled: true | ||
Layout/EndOfLine: | ||
Enabled: false | ||
Metrics/AbcSize: | ||
Enabled: false | ||
Metrics/BlockLength: | ||
Enabled: false | ||
Metrics/ClassLength: | ||
Enabled: false | ||
Metrics/CyclomaticComplexity: | ||
Enabled: false | ||
Metrics/MethodLength: | ||
Enabled: false | ||
Metrics/ModuleLength: | ||
Enabled: false | ||
Metrics/ParameterLists: | ||
Enabled: false | ||
Metrics/PerceivedComplexity: | ||
Enabled: false | ||
RSpec/DescribeClass: | ||
Enabled: false | ||
RSpec/ExampleLength: | ||
Enabled: false | ||
RSpec/MessageExpectation: | ||
Enabled: false | ||
RSpec/MultipleExpectations: | ||
Enabled: false | ||
RSpec/NestedGroups: | ||
Enabled: false | ||
Style/AsciiComments: | ||
Enabled: false | ||
Style/IfUnlessModifier: | ||
Enabled: false | ||
Style/SymbolProc: | ||
Enabled: false | ||
|
||
# Disabled by Keiran - See Issue: https://github.com/keirans/azuremetadata/pull/9 | ||
# Backwards compat for older Facter versions by current users. | ||
Style/HashSyntax: | ||
Enabled: false |
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,44 @@ | ||
--- | ||
sudo: false | ||
dist: trusty | ||
language: ruby | ||
cache: bundler | ||
before_install: | ||
- bundle -v | ||
- rm Gemfile.lock || true | ||
- gem update --system | ||
- gem update bundler | ||
- gem --version | ||
- bundle -v | ||
script: | ||
- 'bundle exec rake $CHECK' | ||
bundler_args: --without system_tests | ||
rvm: | ||
- 2.4.1 | ||
env: | ||
- PUPPET_GEM_VERSION="~> 5.0" CHECK=spec | ||
matrix: | ||
fast_finish: true | ||
include: | ||
- | ||
env: CHECK=rubocop | ||
- | ||
env: CHECK="syntax lint" | ||
- | ||
env: CHECK=metadata_lint | ||
- | ||
env: CHECK=spec | ||
- | ||
env: PUPPET_GEM_VERSION="~> 4.0" CHECK=spec | ||
rvm: 2.1.9 | ||
notifications: | ||
email: false | ||
deploy: | ||
provider: puppetforge | ||
user: keirans | ||
password: | ||
secure: "gQxipHSFs4I81jx5ldUGJog9Ipkzqnq2JBSXZ680z4xKoV9URS4cnbW9r0t25O14vOAuH7hgj2C/wVjJeeJ9+upG9kYQtgdNVyK3E+r89aCOSur5EHKgVtDX9m4Nll2jjBoPrdqzkW0gl+9iMX1Ta1wr2kM8A6gtmsAkjT4H4GjiE6+0ERjFsm/91azJQ58gWtZs3Y6DldTIHHk5Yhiqk1PIaj9aKufcPxJFnlcDP2Hj9lTiQ3sAFPGkXEI0wAAuqRoDOLAyCfawL1ojRu+DatvbwfIN6kiXmJQFFqZnkcEWDhCeuTB/nKrUP0XWzr7X9nXUDJHNqLPR1Z10FwTD4/v9cX5LmBy2DoaGuj+zQdJqhMwOvtrn11A1YJl92Ng5SqD5avNYH7MB/px+N+FOC9k5jtM6YAyW5jfxlBOkkzRx8vPxAZjWTQkQBuch3mPFN/P2pIzIUfvMV14ZLZGsa92mNxMGamPEe7Id56t3MlVIZWNQmxM+w6UL2o6GnQxM7XtZ/erdSFztwTgzSDDod/aJ84wnnacolIiKMT/D7qy/W5BVZ/Q4CqLmz8aVthpYoDSaPlNoQK/Dsk0Qvfcv2Kr73/Z3HvRcDhjKUQ1kS42TSGGLGHZqDzCyfOw7IDOpBIBbicIWshyCbSYayBvziGhkAJFlcNrIUcixjM80dM0=" | ||
on: | ||
tags: true | ||
condition: "$DEPLOY_TO_FORGE = yes" | ||
branch: master |
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 @@ | ||
--markup markdown |
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,18 +1,126 @@ | ||
source ENV['GEM_SOURCE'] || 'https://rubygems.org' | ||
|
||
puppetversion = ENV.key?('PUPPET_VERSION') ? ENV['PUPPET_VERSION'] : ['>= 3.3'] | ||
gem 'metadata-json-lint' | ||
gem 'puppet', puppetversion | ||
gem 'puppetlabs_spec_helper', '>= 1.0.0' | ||
gem 'puppet-lint', '>= 1.0.0' | ||
gem 'facter', '>= 1.7.0' | ||
gem 'rspec-puppet' | ||
|
||
# rspec must be v2 for ruby 1.8.7 | ||
if RUBY_VERSION >= '1.8.7' && RUBY_VERSION < '1.9' | ||
gem 'rspec', '~> 2.0' | ||
gem 'rake', '~> 10.0' | ||
else | ||
# rubocop requires ruby >= 1.9 | ||
gem 'rubocop' | ||
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 "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
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,2 @@ | ||
require 'puppetlabs_spec_helper/rake_tasks' | ||
require 'puppet-syntax/tasks/puppet-syntax' |
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.