diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 40433995b258123e8987fce018e002a6e63e16c1..fd3597f14423570222d81264f015ca059199b580 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -333,7 +333,9 @@ - "**/Dangerfile" - "**/Gemfile" - "**/Guardfile" + - "**/*.rake" - "**/*.rb" + - "**/*.ru" # Backend patterns + .ci-patterns .backend-patterns: &backend-patterns diff --git a/spec/tooling/lib/tooling/check_ruby_syntax_spec.rb b/spec/tooling/lib/tooling/check_ruby_syntax_spec.rb index cc1bc8e6223024e47e040c37d989b643214ad800..9f80f5b905b66b9fbc6cfa945ff5d12e8dcfd8b4 100644 --- a/spec/tooling/lib/tooling/check_ruby_syntax_spec.rb +++ b/spec/tooling/lib/tooling/check_ruby_syntax_spec.rb @@ -26,14 +26,30 @@ it { is_expected.to eq([]) } end - context "with files ending with .rb" do + context "with files ending with Ruby extensions" do + let(:ruby_files) do + %w[ + ruby_file.rb + rspec.html.haml_spec.rb + task.rake + config.ru + ] + end + + let(:non_ruby_files) do + %w[ + a.txt + a.erb + ] + end + before do - FileUtils.touch("foo.rb") - FileUtils.touch("bar.rb") - FileUtils.touch("baz.erb") + (ruby_files + non_ruby_files).each do |file| + FileUtils.touch(file) + end end - it { is_expected.to contain_exactly("foo.rb", "bar.rb") } + it { is_expected.to match_array(ruby_files) } end context "with special Ruby files" do diff --git a/tooling/lib/tooling/check_ruby_syntax.rb b/tooling/lib/tooling/check_ruby_syntax.rb index f769ca0199138b16635b9a5d0a53bf87fa949707..6941a10c0163b46523d46ab0f630e980dc324601 100644 --- a/tooling/lib/tooling/check_ruby_syntax.rb +++ b/tooling/lib/tooling/check_ruby_syntax.rb @@ -7,7 +7,8 @@ module Tooling # # It does not check for compile time warnings yet. See https://gitlab.com/-/snippets/1929968 class CheckRubySyntax - VALID_RUBYFILES = %w[Rakefile Dangerfile Gemfile Guardfile].to_set.freeze + VALID_RUBY_FILES = %w[Rakefile Dangerfile Gemfile Guardfile].to_set.freeze + VALID_RUBY_EXTENSIONS = %w[.rb .rake .ru].freeze attr_reader :files @@ -18,7 +19,7 @@ def initialize(files) def ruby_files @ruby_files ||= @files.select do |file| - file.end_with?(".rb") || VALID_RUBYFILES.include?(File.basename(file)) + file.end_with?(*VALID_RUBY_EXTENSIONS) || VALID_RUBY_FILES.include?(File.basename(file)) end end