From 0a75999392e28f73d810908e59d1fff82712a560 Mon Sep 17 00:00:00 2001
From: Darius Schneider <schneider@itc.rwth-aachen.de>
Date: Tue, 20 May 2025 11:00:06 +0200
Subject: [PATCH] rip in pieces

---
 rails/erb-lint.yml                            | 30 ----------------
 {rails => ruby}/erb_lint.yml                  |  0
 {rails => ruby}/gitlab-ci-for-gem.yml         | 10 +++---
 .../gitlab-ci-for-rails.yml                   | 10 +++---
 ruby/gitlab-ci-for-ruby-script.yml            | 35 +++++++++++++++++++
 {rails => ruby}/haml-lint.yml                 |  0
 {rails => ruby}/rubocop-for-gem.yml           |  1 +
 .../rubocop.yml => ruby/rubocop-for-rails.yml |  5 +--
 ruby/rubocop-for-ruby-script.yml              |  5 +++
 .../rubocop-inherit-itc-gem_ci.yml            |  2 +-
 {rails => ruby}/rubocop/rubocop-base.yml      | 31 +---------------
 ruby/rubocop/rubocop-rails.yml                | 30 ++++++++++++++++
 12 files changed, 86 insertions(+), 73 deletions(-)
 delete mode 100644 rails/erb-lint.yml
 rename {rails => ruby}/erb_lint.yml (100%)
 rename {rails => ruby}/gitlab-ci-for-gem.yml (83%)
 rename rails/gitlab-ci.yml => ruby/gitlab-ci-for-rails.yml (88%)
 create mode 100644 ruby/gitlab-ci-for-ruby-script.yml
 rename {rails => ruby}/haml-lint.yml (100%)
 rename {rails => ruby}/rubocop-for-gem.yml (89%)
 rename rails/rubocop.yml => ruby/rubocop-for-rails.yml (78%)
 create mode 100644 ruby/rubocop-for-ruby-script.yml
 rename rails/rubocop-inherit.yml => ruby/rubocop-inherit-itc-gem_ci.yml (53%)
 rename {rails => ruby}/rubocop/rubocop-base.yml (85%)
 create mode 100644 ruby/rubocop/rubocop-rails.yml

diff --git a/rails/erb-lint.yml b/rails/erb-lint.yml
deleted file mode 100644
index 7db595a..0000000
--- 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 785f731..b20b034 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 0436d81..b253945 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 0000000..7096e90
--- /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 65dbc8c..d256eb5 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 f4b56af..ab043d9 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 0000000..dbedb3f
--- /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 b9698f3..1589a31 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 cb2bc50..0c82e15 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 0000000..9870372
--- /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
-- 
GitLab