Merge pull request #268 from cjmartian/clean-ci

Only test ruby 2.5 and 2.6
This commit is contained in:
Connor Martin 2024-01-24 14:06:48 -08:00 коммит произвёл GitHub
Родитель 43e806e992 777e1dfdfc
Коммит 8abad34851
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
13 изменённых файлов: 35 добавлений и 43 удалений

33
.github/workflows/main.yml поставляемый
Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Двоичные данные
vendor/cache/mime-types-3.5.2.gem поставляемый Normal file

Двоичный файл не отображается.

Двоичные данные
vendor/cache/mime-types-data-3.2023.1205.gem поставляемый Normal file

Двоичный файл не отображается.

Двоичные данные
vendor/cache/rubocop-0.49.0.gem поставляемый Normal file

Двоичный файл не отображается.