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