diff --git a/rails/erb-lint.yml b/rails/erb-lint.yml deleted file mode 100644 index 7db595afb110c6cb1457ae847eb018ce40f351f3..0000000000000000000000000000000000000000 --- a/rails/erb-lint.yml +++ /dev/null @@ -1,30 +0,0 @@ -glob: '**/*.{html,text,js}{+*,}.erb' -exclude: - - '**/vendor/**/*' -EnableDefaultLinters: true -linters: - ErbSafety: - enabled: true - FinalNewline: - enabled: true - Rubocop: - enabled: true - rubocop_config: - inherit_from: - - .rubocop.yml - Layout/InitialIndentation: - Enabled: false - Layout/LineLength: - Enabled: false - Layout/TrailingEmptyLines: - Enabled: false - Layout/TrailingWhitespace: - Enabled: false - Naming/FileName: - Enabled: false - Style/FrozenStringLiteralComment: - Enabled: false - Lint/UselessAssignment: - Enabled: false - Rails/OutputSafety: - Enabled: false diff --git a/rails/erb_lint.yml b/ruby/erb_lint.yml similarity index 100% rename from rails/erb_lint.yml rename to ruby/erb_lint.yml diff --git a/rails/gitlab-ci-for-gem.yml b/ruby/gitlab-ci-for-gem.yml similarity index 83% rename from rails/gitlab-ci-for-gem.yml rename to ruby/gitlab-ci-for-gem.yml index 785f731e1de4dd33abdb4d2ab78d632e4248fb23..b20b0344fa0b525a2378cc9353a5b84f03927399 100644 --- a/rails/gitlab-ci-for-gem.yml +++ b/ruby/gitlab-ci-for-gem.yml @@ -17,7 +17,7 @@ rubocop: tags: - gem script: - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-gem.yml" -O ".rubocop.yml" - gem install rubocop:1.75.6 rubocop-capybara:2.22.1 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 rubocop-rails:2.31.0 --silent - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent - rubocop @@ -28,8 +28,8 @@ erb_lint: tags: - gem script: - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" -O ".rubocop.yml" - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/erb_lint.yml" -O ".erb_lint.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-gem.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/erb_lint.yml" -O ".erb_lint.yml" - gem install rubocop:1.75.6 rubocop-capybara:2.22.1 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 rubocop-rails:2.31.0 erb_lint:0.9.0 --silent - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent - erb_lint --lint-all --allow-no-files true @@ -40,8 +40,8 @@ haml_lint: tags: - gem script: - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" -O ".rubocop.yml" - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/haml-lint.yml" -O ".haml-lint.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-gem.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/haml-lint.yml" -O ".haml-lint.yml" - gem install rubocop:1.75.6 rubocop-capybara:2.22.1 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 rubocop-rails:2.31.0 haml_lint:0.62.0 --silent - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent - haml-lint diff --git a/rails/gitlab-ci.yml b/ruby/gitlab-ci-for-rails.yml similarity index 88% rename from rails/gitlab-ci.yml rename to ruby/gitlab-ci-for-rails.yml index 0436d81f111f7fcbe55ba562c9ae8f48cbdae375..b253945a96f14a3823f378506cbf40fba5c1fef9 100644 --- a/rails/gitlab-ci.yml +++ b/ruby/gitlab-ci-for-rails.yml @@ -17,7 +17,7 @@ rubocop: tags: - rails script: - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-rails.yml" -O ".rubocop.yml" - gem install rubocop:1.75.6 rubocop-capybara:2.22.1 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 rubocop-rails:2.31.0 --silent - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent - rubocop @@ -28,8 +28,8 @@ erb_lint: tags: - rails script: - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" -O ".rubocop.yml" - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/erb_lint.yml" -O ".erb_lint.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-rails.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/erb_lint.yml" -O ".erb_lint.yml" - gem install rubocop:1.75.6 rubocop-capybara:2.22.1 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 rubocop-rails:2.31.0 erb_lint:0.9.0 --silent - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent - erb_lint --lint-all --allow-no-files true @@ -40,8 +40,8 @@ haml_lint: tags: - rails script: - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" -O ".rubocop.yml" - - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/haml-lint.yml" -O ".haml-lint.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-rails.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/haml-lint.yml" -O ".haml-lint.yml" - gem install rubocop:1.75.6 rubocop-capybara:2.22.1 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 rubocop-rails:2.31.0 haml_lint:0.62.0 --silent - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent - haml-lint diff --git a/ruby/gitlab-ci-for-ruby-script.yml b/ruby/gitlab-ci-for-ruby-script.yml new file mode 100644 index 0000000000000000000000000000000000000000..7096e9040e69501559dbb476213803a3d0250cc2 --- /dev/null +++ b/ruby/gitlab-ci-for-ruby-script.yml @@ -0,0 +1,35 @@ +variables: + CI: "true" + RAILS_ENV: test + +set_ruby_version: + stage: build + script: + - echo "RUBY_VERSION=$(cat .ruby-version | sed 's/ruby-//g')" >> build.env + artifacts: + reports: + dotenv: build.env + expire_in: 1 week + +rubocop: + stage: test + image: ruby:$RUBY_VERSION + tags: + - gem + script: + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-ruby-script.yml" -O ".rubocop.yml" + - gem install rubocop:1.75.6 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 --silent + - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent + - rubocop + +erb_lint: + stage: test + image: ruby:$RUBY_VERSION + tags: + - gem + script: + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/rubocop-for-ruby-script.yml" -O ".rubocop.yml" + - wget --quiet "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/ruby/erb_lint.yml" -O ".erb_lint.yml" + - gem install rubocop:1.75.6 rubocop-minitest:0.38.0 rubocop-performance:1.25.0 erb_lint:0.9.0 --silent + - gem install itc-gem_rubocop:0.1.4 --source=https://noc-portal.itc.rwth-aachen.de/geminabox --silent + - erb_lint --lint-all --allow-no-files true diff --git a/rails/haml-lint.yml b/ruby/haml-lint.yml similarity index 100% rename from rails/haml-lint.yml rename to ruby/haml-lint.yml diff --git a/rails/rubocop-for-gem.yml b/ruby/rubocop-for-gem.yml similarity index 89% rename from rails/rubocop-for-gem.yml rename to ruby/rubocop-for-gem.yml index 65dbc8c630f20d2e637b8669eb1b663f46ef17f7..d256eb52ab87b18796c6eca5cd95ac81f7f816a7 100644 --- a/rails/rubocop-for-gem.yml +++ b/ruby/rubocop-for-gem.yml @@ -1,4 +1,5 @@ inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop/rubocop-base.yml" +inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop/rubocop-rails.yml" plugins: - rubocop-packaging diff --git a/rails/rubocop.yml b/ruby/rubocop-for-rails.yml similarity index 78% rename from rails/rubocop.yml rename to ruby/rubocop-for-rails.yml index f4b56af8e23068818bef80ec936e3c3794dd3b20..ab043d9abe953f66ebb67e118829aee5208bc67b 100644 --- a/rails/rubocop.yml +++ b/ruby/rubocop-for-rails.yml @@ -1,11 +1,12 @@ inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop/rubocop-base.yml" +inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop/rubocop-rails.yml" plugins: - itc-gem_rubocop - rubocop-capybara -# gem "itc-gem_rubocop", "0.1.3", require: false -# gem "rubocop", "1.75.3", require: false +# gem "itc-gem_rubocop", "0.1.4", require: false +# gem "rubocop", "1.75.6", require: false # gem "rubocop-capybara", "2.22.1", require: false # gem "rubocop-minitest", "0.38.0", require: false # gem "rubocop-performance", "1.25.0", require: false diff --git a/ruby/rubocop-for-ruby-script.yml b/ruby/rubocop-for-ruby-script.yml new file mode 100644 index 0000000000000000000000000000000000000000..dbedb3f488062c249b06a550c8ccf1a0501a94ab --- /dev/null +++ b/ruby/rubocop-for-ruby-script.yml @@ -0,0 +1,5 @@ +inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop/rubocop-base.yml" + +# gem "rubocop", "1.75.6", require: false +# gem "rubocop-minitest", "0.38.0", require: false +# gem "rubocop-performance", "1.25.0", require: false diff --git a/rails/rubocop-inherit.yml b/ruby/rubocop-inherit-itc-gem_ci.yml similarity index 53% rename from rails/rubocop-inherit.yml rename to ruby/rubocop-inherit-itc-gem_ci.yml index b9698f357d877928714167e9548bb64008cfb9f5..1589a31ca879aca4937d16f84b457c868208150f 100644 --- a/rails/rubocop-inherit.yml +++ b/ruby/rubocop-inherit-itc-gem_ci.yml @@ -1 +1 @@ -inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop.yml" +inherit_from: "https://git-ce.rwth-aachen.de/noc-public/noc-netze-gitlab-cicd/-/raw/main/rails/rubocop-for-rails.yml" diff --git a/rails/rubocop/rubocop-base.yml b/ruby/rubocop/rubocop-base.yml similarity index 85% rename from rails/rubocop/rubocop-base.yml rename to ruby/rubocop/rubocop-base.yml index cb2bc50ed4fcc9d623c30da60f04fd671689264b..0c82e15b5c14960aca0505625a03517f8d6b2c19 100644 --- a/rails/rubocop/rubocop-base.yml +++ b/ruby/rubocop/rubocop-base.yml @@ -2,12 +2,10 @@ plugins: - rubocop-minitest - rubocop-performance - - rubocop-rails -# gem "rubocop", "1.75.2", require: false +# gem "rubocop", "1.75.6", require: false # gem "rubocop-minitest", "0.38.0", require: false # gem "rubocop-performance", "1.25.0", require: false -# gem "rubocop-rails", "2.31.0", require: false AllCops: NewCops: enable # pending cops get enabled by default and must be disabled by hand, if needed @@ -98,33 +96,6 @@ Minitest/MultipleAssertions: # END Minitest -# BEGIN Rails -# exclude API namespace, but not others (ITC convention) -Rails/ApplicationController: - Exclude: ['app/controllers/api/**/*', 'app/controllers/a_p_i/**/*'] - -# exclude migrations since non-ApplicationRecord behavior might be desired -Rails/ApplicationRecord: - Exclude: ['db/migrate/*'] - -# ensure paths are built using a filesystem agnostic way, i.e. arguments instead of a single string -Rails/FilePath: - EnforcedStyle: arguments # default: slashes - -# no reason not to use an established Rails feature if developers see fit -Rails/HasAndBelongsToMany: - Enabled: false - -# prevent puts, but exclude test, config, db since Rails Logger may not have been loaded -Rails/Output: - Exclude: *test_config_db_gemspec - -# allow usage of methods that skip validations; we trust developers know what they are doing -Rails/SkipsModelValidations: - Enabled: false -# END Rails - - # BEGIN Style # prevent getting around most cops, but allow a few that may be impossible to resolve otherwise, f.e.: # ItcGemRubocop/DevelopmentHosts: allow usage of different `config.hosts` config in development, if needed diff --git a/ruby/rubocop/rubocop-rails.yml b/ruby/rubocop/rubocop-rails.yml new file mode 100644 index 0000000000000000000000000000000000000000..98703724bd03fc7598ac47c3fa4e76a8919fe89c --- /dev/null +++ b/ruby/rubocop/rubocop-rails.yml @@ -0,0 +1,30 @@ +plugins: + - rubocop-rails + +# gem "rubocop-rails", "2.31.0", require: false + +# BEGIN Rails +# exclude API namespace, but not others (ITC convention) +Rails/ApplicationController: + Exclude: ['app/controllers/api/**/*', 'app/controllers/a_p_i/**/*'] + +# exclude migrations since non-ApplicationRecord behavior might be desired +Rails/ApplicationRecord: + Exclude: ['db/migrate/*'] + +# ensure paths are built using a filesystem agnostic way, i.e. arguments instead of a single string +Rails/FilePath: + EnforcedStyle: arguments # default: slashes + +# no reason not to use an established Rails feature if developers see fit +Rails/HasAndBelongsToMany: + Enabled: false + +# prevent puts, but exclude test, config, db since Rails Logger may not have been loaded +Rails/Output: + Exclude: *test_config_db_gemspec + +# allow usage of methods that skip validations; we trust developers know what they are doing +Rails/SkipsModelValidations: + Enabled: false +# END Rails \ No newline at end of file