Merge pull request #268 from cjmartian/clean-ci
Only test ruby 2.5 and 2.6
This commit is contained in:
Коммит
8abad34851
|
@ -1,25 +1,6 @@
|
||||||
name: CI
|
name: CI
|
||||||
on: [push, pull_request, workflow_dispatch]
|
on: [push, pull_request, workflow_dispatch]
|
||||||
jobs:
|
jobs:
|
||||||
puppet-3-8-7:
|
|
||||||
env:
|
|
||||||
PUPPET_VERSIONS: "3.8.7"
|
|
||||||
PUPPET_VERSION: "3.8.7"
|
|
||||||
RUBOCOP_TEST: false
|
|
||||||
RSPEC_TEST: true
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
ruby-version: ["2.0", "2.1"]
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v1
|
|
||||||
- name: Build container
|
|
||||||
run: docker build . --file Dockerfile --tag octocatalog-diff:ruby${{matrix.ruby-version}} --build-arg RUBY_VERSION=${{matrix.ruby-version}}
|
|
||||||
- name: Tests
|
|
||||||
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
|
||||||
|
|
||||||
puppet-4-10-10:
|
puppet-4-10-10:
|
||||||
env:
|
env:
|
||||||
PUPPET_VERSIONS: "4.10.10"
|
PUPPET_VERSIONS: "4.10.10"
|
||||||
|
@ -30,7 +11,7 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
ruby-version: ["2.1", "2.2", "2.3"]
|
ruby-version: ["2.5", "2.6"]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
@ -39,22 +20,22 @@ jobs:
|
||||||
- name: Tests
|
- name: Tests
|
||||||
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
||||||
|
|
||||||
puppet-5-5-8:
|
puppet-5-5-22:
|
||||||
env:
|
env:
|
||||||
PUPPET_VERSIONS: "5.5.8"
|
PUPPET_VERSIONS: "5.5.22"
|
||||||
PUPPET_VERSION: "5.5.8"
|
PUPPET_VERSION: "5.5.22"
|
||||||
RUBOCOP_TEST: false
|
RUBOCOP_TEST: false
|
||||||
RSPEC_TEST: true
|
RSPEC_TEST: true
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
ruby-version: ["2.4", "2.5", "2.6"]
|
ruby-version: ["2.5", "2.6"]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
- name: Build container
|
- name: Build container
|
||||||
run: docker build . --file Dockerfile --tag octocatalog-diff:ruby${{matrix.ruby-version}} --build-arg RUBY_VERSION=${{matrix.ruby-version}}-stretch
|
run: docker build . --file Dockerfile --tag octocatalog-diff:ruby${{matrix.ruby-version}} --build-arg RUBY_VERSION=${{matrix.ruby-version}}-buster
|
||||||
- name: Tests
|
- name: Tests
|
||||||
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
||||||
|
|
||||||
|
@ -73,7 +54,7 @@ jobs:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
- name: Build container
|
- name: Build container
|
||||||
run: docker build . --file Dockerfile --tag octocatalog-diff:ruby${{matrix.ruby-version}} --build-arg RUBY_VERSION=${{matrix.ruby-version}}-stretch
|
run: docker build . --file Dockerfile --tag octocatalog-diff:ruby${{matrix.ruby-version}} --build-arg RUBY_VERSION=${{matrix.ruby-version}}-buster
|
||||||
- name: Tests
|
- name: Tests
|
||||||
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
run: docker run -e PUPPET_VERSION -e PUPPET_VERSIONS -e RSPEC_TEST -e RUBOCOP_TEST -e ENFORCE_COVERAGE octocatalog-diff:ruby${{matrix.ruby-version}} /app/script/cibuild
|
||||||
- name: Rubocop and Coverage
|
- name: Rubocop and Coverage
|
||||||
|
|
12
.rubocop.yml
12
.rubocop.yml
|
@ -57,6 +57,8 @@ Style/Documentation:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
||||||
# To fix later
|
# To fix later
|
||||||
|
Style/FormatStringToken:
|
||||||
|
Enabled: false
|
||||||
Style/PercentLiteralDelimiters:
|
Style/PercentLiteralDelimiters:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Style/VariableNumber:
|
Style/VariableNumber:
|
||||||
|
@ -73,7 +75,13 @@ Style/EmptyMethod:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Style/SymbolArray:
|
Style/SymbolArray:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Style/IndentHeredoc:
|
Style/YodaCondition:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Style/ExtraSpacing:
|
Layout/HeredocIndentation:
|
||||||
|
Enabled: false
|
||||||
|
Layout/ExtraSpacing:
|
||||||
|
Enabled: false
|
||||||
|
Performance/Caller:
|
||||||
|
Enabled: false
|
||||||
|
Style/WordArray:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
|
1
Gemfile
1
Gemfile
|
@ -2,5 +2,6 @@ source 'https://rubygems.org'
|
||||||
|
|
||||||
gem 'rake', '12.3.3'
|
gem 'rake', '12.3.3'
|
||||||
gem 'httparty', '0.16.3'
|
gem 'httparty', '0.16.3'
|
||||||
|
gem 'rubocop', '0.49.0'
|
||||||
|
|
||||||
gemspec
|
gemspec
|
||||||
|
|
|
@ -74,7 +74,7 @@ module OctocatalogDiff
|
||||||
return value if datatype == 'string'
|
return value if datatype == 'string'
|
||||||
return parse_json(value) if datatype == 'json'
|
return parse_json(value) if datatype == 'json'
|
||||||
return nil if datatype == 'nil'
|
return nil if datatype == 'nil'
|
||||||
if datatype == 'fixnum' || datatype == 'integer'
|
if ['fixnum', 'integer'].include? datatype
|
||||||
return Regexp.last_match(1).to_i if value =~ /^(-?\d+)$/
|
return Regexp.last_match(1).to_i if value =~ /^(-?\d+)$/
|
||||||
raise ArgumentError, "Illegal integer '#{value}'"
|
raise ArgumentError, "Illegal integer '#{value}'"
|
||||||
end
|
end
|
||||||
|
|
|
@ -262,7 +262,7 @@ module OctocatalogDiff
|
||||||
# Process each attribute in the resource
|
# Process each attribute in the resource
|
||||||
resource.each do |k, v|
|
resource.each do |k, v|
|
||||||
# Title was pre-processed
|
# Title was pre-processed
|
||||||
next if k == 'title' || k == 'type'
|
next if ['title', 'type'].include? k
|
||||||
|
|
||||||
# Handle parameters
|
# Handle parameters
|
||||||
if k == 'parameters'
|
if k == 'parameters'
|
||||||
|
@ -272,7 +272,7 @@ module OctocatalogDiff
|
||||||
# The order of tags is unimportant. Sort this array to avoid false diffs if order changes.
|
# The order of tags is unimportant. Sort this array to avoid false diffs if order changes.
|
||||||
# Also if tags is empty, don't add.
|
# Also if tags is empty, don't add.
|
||||||
hsh[k] = v.sort if v.is_a?(Array) && v.any?
|
hsh[k] = v.sort if v.is_a?(Array) && v.any?
|
||||||
elsif k == 'file' || k == 'line'
|
elsif ['file', 'line'].include? k
|
||||||
# We don't care, for the purposes of catalog-diff, from which manifest and line this resource originated.
|
# We don't care, for the purposes of catalog-diff, from which manifest and line this resource originated.
|
||||||
# However, we may report this to the user, so we will keep it in here for now.
|
# However, we may report this to the user, so we will keep it in here for now.
|
||||||
hsh[k] = v
|
hsh[k] = v
|
||||||
|
@ -354,7 +354,7 @@ module OctocatalogDiff
|
||||||
elsif operator == '=->'
|
elsif operator == '=->'
|
||||||
# String equality test only of the old value
|
# String equality test only of the old value
|
||||||
matcher = ->(x, _y) { x == value }
|
matcher = ->(x, _y) { x == value }
|
||||||
elsif operator == '=~>' || operator == '=&>'
|
elsif ['=~>', '=&>'].include? operator
|
||||||
begin
|
begin
|
||||||
my_regex = Regexp.new(value, Regexp::IGNORECASE)
|
my_regex = Regexp.new(value, Regexp::IGNORECASE)
|
||||||
rescue RegexpError => exc
|
rescue RegexpError => exc
|
||||||
|
|
|
@ -99,7 +99,7 @@ module OctocatalogDiff
|
||||||
# option will populate any of the 'to' and 'from' variants that are missing.
|
# option will populate any of the 'to' and 'from' variants that are missing.
|
||||||
# @param :datatype [?] Expected data type
|
# @param :datatype [?] Expected data type
|
||||||
def self.option_globally_or_per_branch(opts = {})
|
def self.option_globally_or_per_branch(opts = {})
|
||||||
opts[:filename] = caller[0].split(':').first
|
opts[:filename] = opts[:filename] = caller[0].split(':').first
|
||||||
datatype = opts.fetch(:datatype, '')
|
datatype = opts.fetch(:datatype, '')
|
||||||
return option_globally_or_per_branch_string(opts) if datatype.is_a?(String)
|
return option_globally_or_per_branch_string(opts) if datatype.is_a?(String)
|
||||||
return option_globally_or_per_branch_array(opts) if datatype.is_a?(Array)
|
return option_globally_or_per_branch_array(opts) if datatype.is_a?(Array)
|
||||||
|
|
|
@ -23,7 +23,7 @@ OctocatalogDiff::Cli::Options::Option.newoption(:compare_file_text) do
|
||||||
parser.on('--[no-]compare-file-text[=force]', 'Compare text, not source location, of file resources') do |x|
|
parser.on('--[no-]compare-file-text[=force]', 'Compare text, not source location, of file resources') do |x|
|
||||||
if x == 'force'
|
if x == 'force'
|
||||||
options[:compare_file_text] = :force
|
options[:compare_file_text] = :force
|
||||||
elsif x == true || x == false
|
elsif [true, false].include? x
|
||||||
options[:compare_file_text] = x
|
options[:compare_file_text] = x
|
||||||
else
|
else
|
||||||
raise OptionParser::NeedlessArgument("needless argument: --compare-file-text=#{x}")
|
raise OptionParser::NeedlessArgument("needless argument: --compare-file-text=#{x}")
|
||||||
|
|
|
@ -18,10 +18,10 @@ Gem::Specification.new do |s|
|
||||||
s.homepage = 'https://github.com/github/octocatalog-diff'
|
s.homepage = 'https://github.com/github/octocatalog-diff'
|
||||||
s.summary = 'Compile Puppet catalogs from 2 branches, versions, etc., and compare them.'
|
s.summary = 'Compile Puppet catalogs from 2 branches, versions, etc., and compare them.'
|
||||||
s.description = <<-EOF
|
s.description = <<-EOF
|
||||||
Octocatalog-Diff assists with Puppet development and testing by enabling the user to
|
Octocatalog-Diff assists with Puppet development and testing by enabling the user to
|
||||||
compile 2 Puppet catalogs and compare them. It is possible to compare different
|
compile 2 Puppet catalogs and compare them. It is possible to compare different
|
||||||
branches, different versions, and different fact values. This is intended to be run
|
branches, different versions, and different fact values. This is intended to be run
|
||||||
from a local development environment or in CI.
|
from a local development environment or in CI.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
s.add_runtime_dependency 'diffy', '>= 3.1.0'
|
s.add_runtime_dependency 'diffy', '>= 3.1.0'
|
||||||
|
@ -31,11 +31,11 @@ EOF
|
||||||
s.add_runtime_dependency 'rugged', '>= 0.25.0b2'
|
s.add_runtime_dependency 'rugged', '>= 0.25.0b2'
|
||||||
|
|
||||||
s.add_development_dependency 'rspec', '~> 3.4.0'
|
s.add_development_dependency 'rspec', '~> 3.4.0'
|
||||||
s.add_development_dependency 'rake', '12.3.1'
|
s.add_development_dependency 'rake', '12.3.3'
|
||||||
s.add_development_dependency 'parallel_tests', '2.7.1'
|
s.add_development_dependency 'parallel_tests', '2.7.1'
|
||||||
s.add_development_dependency 'rspec-retry', '0.5.0'
|
s.add_development_dependency 'rspec-retry', '0.5.0'
|
||||||
|
|
||||||
s.add_development_dependency 'rubocop', '= 0.48.1'
|
s.add_development_dependency 'rubocop', '= 0.49.0'
|
||||||
|
|
||||||
s.add_development_dependency 'simplecov', '~> 0.14.1'
|
s.add_development_dependency 'simplecov', '~> 0.14.1'
|
||||||
s.add_development_dependency 'simplecov-erb', '~> 0.1.1'
|
s.add_development_dependency 'simplecov-erb', '~> 0.1.1'
|
||||||
|
|
|
@ -92,10 +92,10 @@ describe OctocatalogDiff::CatalogUtil::FileResources do
|
||||||
it 'should expand globs in modulepath, if present' do
|
it 'should expand globs in modulepath, if present' do
|
||||||
allow(File).to receive(:file?).with('/a/environment.conf').and_return(true)
|
allow(File).to receive(:file?).with('/a/environment.conf').and_return(true)
|
||||||
allow(File).to receive(:read).with('/a/environment.conf')
|
allow(File).to receive(:read).with('/a/environment.conf')
|
||||||
.and_return('modulepath=modules:extra_mods/*/modules:$basemoduledir')
|
.and_return('modulepath=modules:extra_mods/*/modules:$basemoduledir')
|
||||||
allow(Dir).to receive(:glob).with('/a/modules').and_return(['/a/modules'])
|
allow(Dir).to receive(:glob).with('/a/modules').and_return(['/a/modules'])
|
||||||
allow(Dir).to receive(:glob).with('/a/extra_mods/*/modules')
|
allow(Dir).to receive(:glob).with('/a/extra_mods/*/modules')
|
||||||
.and_return(['/a/extra_mods/a/modules', '/a/extra_mods/b/modules'])
|
.and_return(['/a/extra_mods/a/modules', '/a/extra_mods/b/modules'])
|
||||||
result = OctocatalogDiff::CatalogUtil::FileResources.module_path('/a')
|
result = OctocatalogDiff::CatalogUtil::FileResources.module_path('/a')
|
||||||
expect(result).to eq(['/a/modules', '/a/extra_mods/a/modules', '/a/extra_mods/b/modules'])
|
expect(result).to eq(['/a/modules', '/a/extra_mods/a/modules', '/a/extra_mods/b/modules'])
|
||||||
end
|
end
|
||||||
|
|
|
@ -96,7 +96,9 @@ describe OctocatalogDiff::CatalogUtil::Git do
|
||||||
it 'should return the sha from rugged' do
|
it 'should return the sha from rugged' do
|
||||||
opts = { branch: 'foo', basedir: '/tmp/bar' }
|
opts = { branch: 'foo', basedir: '/tmp/bar' }
|
||||||
expect(Rugged::Repository).to receive(:new).with('/tmp/bar')
|
expect(Rugged::Repository).to receive(:new).with('/tmp/bar')
|
||||||
.and_return(OpenStruct.new(branches: { 'foo' => OpenStruct.new(target_id: 'abcdef012345') }))
|
.and_return(OpenStruct.new(branches: {
|
||||||
|
'foo' => OpenStruct.new(target_id: 'abcdef012345')
|
||||||
|
}))
|
||||||
result = described_class.branch_sha(opts)
|
result = described_class.branch_sha(opts)
|
||||||
expect(result).to eq('abcdef012345')
|
expect(result).to eq('abcdef012345')
|
||||||
end
|
end
|
||||||
|
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче