From 36df40ce9f1fdf2a86fbb66da40125aa7e14f25f Mon Sep 17 00:00:00 2001 From: fartem Date: Fri, 25 Apr 2025 12:31:15 +0300 Subject: [PATCH 1/3] 2025-04-25 v. 9.3.4.1: added StageChecker --- .gitignore | 2 ++ Rakefile | 4 +++- ci/ci_job.rb | 2 +- ci/stage_checker.rb | 18 ++++++++++++++++++ leetcode-ruby.gemspec | 2 +- 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 ci/stage_checker.rb diff --git a/.gitignore b/.gitignore index 4131e1f1..f5a01132 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,5 @@ Gemfile.lock # Version checker *.remote + +.cursor diff --git a/Rakefile b/Rakefile index 3dfd8d6e..ebb66f01 100644 --- a/Rakefile +++ b/Rakefile @@ -25,6 +25,7 @@ require_relative './ci/readme_paths_checker' require_relative './ci/tests_checker' require_relative './ci/version_checker' require_relative './ci/duplicate_links_checker' +require_relative './ci/stage_checker' task :ci do [ ::CI::LinksChecker.new, @@ -32,6 +33,7 @@ task :ci do ::CI::ReadmePathsChecker.new, ::CI::TestsChecker.new, ::CI::VersionChecker.new, - ::CI::DuplicateLinksChecker.new + ::CI::DuplicateLinksChecker.new, + ::CI::StageChecker.new ].each(&:process) end diff --git a/ci/ci_job.rb b/ci/ci_job.rb index 436bf46b..70cc77ac 100644 --- a/ci/ci_job.rb +++ b/ci/ci_job.rb @@ -20,7 +20,7 @@ def run end # Use this method in your realization when task completed with error. - # @param {String} details + # @param {Proc} details # @return {Void} def end_with_error(details) details.call diff --git a/ci/stage_checker.rb b/ci/stage_checker.rb new file mode 100644 index 00000000..6f768623 --- /dev/null +++ b/ci/stage_checker.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require_relative './ci_job' + +module CI + # CI job that checks all files are staged for commit. + class StageChecker < ::CI::CIJob + # Process StageChecker. + # @return {Void} + def process + git_status = `git status --porcelain` + + return if git_status.empty? + + end_with_error(-> { puts("StageChecker found unstaged changes:\n#{git_status}") }) + end + end +end diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index ae2699e9..81a35473 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '9.3.4' + s.version = '9.3.4.1' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' From e5af5b7b4ff8157ab2d03dfcd73c04cc4ab90577 Mon Sep 17 00:00:00 2001 From: fartem Date: Fri, 25 Apr 2025 12:34:27 +0300 Subject: [PATCH 2/3] 2025-04-25 v. 9.3.4.1: updated StageChecker --- ci/stage_checker.rb | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/ci/stage_checker.rb b/ci/stage_checker.rb index 6f768623..b1a7b39d 100644 --- a/ci/stage_checker.rb +++ b/ci/stage_checker.rb @@ -3,16 +3,10 @@ require_relative './ci_job' module CI - # CI job that checks all files are staged for commit. + # CI job that add all files to stage for commit. class StageChecker < ::CI::CIJob # Process StageChecker. # @return {Void} - def process - git_status = `git status --porcelain` - - return if git_status.empty? - - end_with_error(-> { puts("StageChecker found unstaged changes:\n#{git_status}") }) - end + def process = `git add -u` end end From 9d9d7a3fa3ad34eb6ee55612ab2c34ac8ef714eb Mon Sep 17 00:00:00 2001 From: fartem Date: Fri, 25 Apr 2025 12:47:52 +0300 Subject: [PATCH 3/3] 2025-04-25 v. 9.3.4.1: added MasterChecker --- Rakefile | 2 ++ ci/master_checker.rb | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 ci/master_checker.rb diff --git a/Rakefile b/Rakefile index ebb66f01..4e60eb98 100644 --- a/Rakefile +++ b/Rakefile @@ -19,6 +19,7 @@ require 'rake/testtask' end desc 'Run all custom checks for CI' +require_relative './ci/master_checker' require_relative './ci/links_checker' require_relative './ci/readme_duplicates_checker' require_relative './ci/readme_paths_checker' @@ -28,6 +29,7 @@ require_relative './ci/duplicate_links_checker' require_relative './ci/stage_checker' task :ci do [ + ::CI::MasterChecker.new, ::CI::LinksChecker.new, ::CI::ReadmeDuplicatesChecker.new, ::CI::ReadmePathsChecker.new, diff --git a/ci/master_checker.rb b/ci/master_checker.rb new file mode 100644 index 00000000..bd5f9df9 --- /dev/null +++ b/ci/master_checker.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +require_relative './ci_job' + +module CI + # CI job that checks that we are not in master branch. + class MasterChecker < CIJob + # Process MasterChecker. + # @return {Void} + def process + current_branch = `git rev-parse --abbrev-ref HEAD`.strip + + return unless current_branch == 'master' + + end_with_error(-> { puts('MasterChecker ends with an error. You cannot commit directly to master branch.') }) + end + end +end