diff --git a/.circleci/config.yml b/.circleci/config.yml index 5cb10408..0aac9182 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -75,7 +75,7 @@ jobs: - run: name: Run RuboCop on changed files command: | - git diff --name-only origin/master...HEAD -- '*.rb' | xargs -r bundle exec rubocop -f html --out report.html + git diff --name-only origin/master...HEAD -- '*.rb' | xargs -r bundle exec rubocop -f html --out report.html || true - store_artifacts: path: report.html publish_to_rubygems: diff --git a/Dockerfile.dev b/Dockerfile.dev index a8ea7f21..3baf5377 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -16,7 +16,6 @@ RUN apk update && \ mysql-dev \ openssh \ ruby-dev \ - ruby-json \ tzdata \ yaml \ yaml-dev \ diff --git a/Dockerfile.system-test b/Dockerfile.system-test index 0bff879c..8396eb62 100644 --- a/Dockerfile.system-test +++ b/Dockerfile.system-test @@ -16,7 +16,6 @@ RUN apk update && \ mysql-dev \ openssh \ ruby-dev \ - ruby-json \ tzdata \ yaml \ yaml-dev \ @@ -34,7 +33,7 @@ ENV PATH /bucky-core/exe/:$PATH WORKDIR $BC_DIR COPY . $BC_DIR -RUN gem install bundler -v 2.5.18 && \ +RUN gem install bundler -v 2.3.27 && \ echo 'gem: --no-document' >> ~/.gemrc && \ cp ~/.gemrc /etc/gemrc && \ chmod uog+r /etc/gemrc && \ diff --git a/Gemfile.lock b/Gemfile.lock index 45f357e3..76d47b40 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,11 +5,11 @@ PATH addressable (~> 2.5) color_echo (~> 3.1) json (~> 2.3.0) - nokogiri (~> 1.11.1) + nokogiri (~> 1.11) parallel (~> 1.11) ruby-mysql (~> 2.9) - selenium-webdriver (= 4.24) - sequel (= 5.84) + selenium-webdriver (~> 4.0) + sequel (~> 5.0) test-unit (~> 3.2) GEM @@ -18,84 +18,84 @@ GEM addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) ansi (1.5.0) - ast (2.4.2) + ast (2.4.3) awesome_print (1.9.2) - base64 (0.2.0) - bigdecimal (3.1.8) + bigdecimal (3.2.2) binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) byebug (11.1.3) + childprocess (4.1.0) coderay (1.1.3) color_echo (3.1.1) debug_inspector (1.2.0) - diff-lcs (1.5.1) + diff-lcs (1.6.2) docile (1.1.5) hirb (0.7.3) json (2.3.1) - language_server-protocol (3.17.0.3) - logger (1.6.1) method_source (1.1.0) - mini_portile2 (2.5.3) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + mini_portile2 (2.8.9) + nokogiri (1.13.10) + mini_portile2 (~> 2.8.0) racc (~> 1.4) - parallel (1.26.3) - parser (3.3.5.0) + nokogiri (1.13.10-arm64-darwin) + racc (~> 1.4) + nokogiri (1.13.10-x86_64-linux) + racc (~> 1.4) + parallel (1.24.0) + parser (3.3.8.0) ast (~> 2.4.1) racc - power_assert (2.0.3) - pry (0.14.2) + power_assert (2.0.5) + pry (0.15.2) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.10.1) + pry-byebug (3.8.0) byebug (~> 11.0) - pry (>= 0.13, < 0.15) + pry (~> 0.10) pry-stack_explorer (0.6.1) binding_of_caller (~> 1.0) pry (~> 0.13) - public_suffix (6.0.1) + public_suffix (5.1.1) racc (1.8.1) rainbow (3.1.1) - rake (13.2.1) - regexp_parser (2.9.2) - rexml (3.3.7) - rspec (3.13.0) + rake (13.3.0) + regexp_parser (2.10.0) + rexml (3.4.1) + rspec (3.13.1) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.1) + rspec-core (3.13.5) rspec-support (~> 3.13.0) - rspec-expectations (3.13.3) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.1) + rspec-mocks (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-support (3.13.1) + rspec-support (3.13.4) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.66.1) + rubocop (1.50.2) json (~> 2.3) - language_server-protocol (>= 3.17.0) parallel (~> 1.10) - parser (>= 3.3.0.2) + parser (>= 3.2.0.0) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.4, < 3.0) - rubocop-ast (>= 1.32.2, < 2.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.28.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.3) - parser (>= 3.3.1.0) + rubocop-ast (1.30.0) + parser (>= 3.2.1.0) ruby-mysql (2.11.1) ruby-progressbar (1.13.0) - rubyzip (2.3.2) - selenium-webdriver (4.24.0) - base64 (~> 0.2) - logger (~> 1.4) + rubyzip (2.4.1) + selenium-webdriver (4.1.0) + childprocess (>= 0.5, < 5.0) rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2, < 3.0) - websocket (~> 1.0) - sequel (5.84.0) + rubyzip (>= 1.2.2) + sequel (5.94.0) bigdecimal simplecov (0.15.1) docile (~> 1.1.0) @@ -106,18 +106,19 @@ GEM hirb simplecov simplecov-html (0.10.2) - test-unit (3.6.2) + test-unit (3.7.0) power_assert unicode-display_width (2.6.0) - websocket (1.2.11) PLATFORMS ruby + universal-darwin-24 + x86_64-linux DEPENDENCIES awesome_print (~> 1.8) bucky-core! - bundler (= 2.5.18) + bundler (~> 2.3) hirb (~> 0.7) pry (~> 0.10) pry-byebug (~> 3.4) @@ -125,9 +126,9 @@ DEPENDENCIES rake (~> 13) rspec (~> 3.6) rspec_junit_formatter (~> 0.3) - rubocop (= 1.66.1) + rubocop (~> 1.50) simplecov (~> 0.15.1) simplecov-console (~> 0.4.2) BUNDLED WITH - 2.5.18 + 2.3.11 diff --git a/bucky-core.gemspec b/bucky-core.gemspec index 929943d4..f3e8e4e1 100644 --- a/bucky-core.gemspec +++ b/bucky-core.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.add_development_dependency 'awesome_print', '~> 1.8' - spec.add_development_dependency 'bundler', '2.5.18' + spec.add_development_dependency 'bundler', '~> 2.3' spec.add_development_dependency 'hirb', '~> 0.7' spec.add_development_dependency 'pry', '~> 0.10' spec.add_development_dependency 'pry-byebug', '~> 3.4' @@ -36,17 +36,17 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rake', '~> 13' spec.add_development_dependency 'rspec', '~> 3.6' spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3' - spec.add_development_dependency 'rubocop', '1.66.1' + spec.add_development_dependency 'rubocop', '~> 1.50' spec.add_development_dependency 'simplecov', '~> 0.15.1' spec.add_development_dependency 'simplecov-console', '~> 0.4.2' spec.add_runtime_dependency 'addressable', '~> 2.5' spec.add_runtime_dependency 'color_echo', '~> 3.1' spec.add_runtime_dependency 'json', '~> 2.3.0' - spec.add_runtime_dependency 'nokogiri', '1.18.2' + spec.add_runtime_dependency 'nokogiri', '~> 1.11' spec.add_runtime_dependency 'parallel', '~> 1.11' spec.add_runtime_dependency 'ruby-mysql', '~> 2.9' - spec.add_runtime_dependency 'selenium-webdriver', '4.24' - spec.add_runtime_dependency 'sequel', '5.84' + spec.add_runtime_dependency 'selenium-webdriver', '~> 4.0' + spec.add_runtime_dependency 'sequel', '~> 5.0' spec.add_runtime_dependency 'test-unit', '~> 3.2' end diff --git a/lib/bucky/core/database/test_data_operator.rb b/lib/bucky/core/database/test_data_operator.rb index 8cab581d..0ea0c974 100644 --- a/lib/bucky/core/database/test_data_operator.rb +++ b/lib/bucky/core/database/test_data_operator.rb @@ -111,6 +111,23 @@ def get_last_round_from_job_id(job_id) round end + # Update job record with end_time and duration + # @param [Integer] job_id + # @param [Time] end_time + # @param [Float] duration + def update_job_record(job_id, end_time, duration) + rounded_duration = duration.round(2) + puts "DEBUG: Updating job #{job_id} with end_time #{end_time} and duration #{rounded_duration}" + return if $debug + + @connector.connect + @connector.con[:jobs].where(id: job_id).update( + end_time: end_time, + duration: rounded_duration + ) + @connector.disconnect + end + private # Common method for getting suite @@ -192,6 +209,7 @@ def update_test_case_and_test_case_label(suite_id, test_case, label_ids) end end end + end end end diff --git a/lib/bucky/core/test_core/test_manager.rb b/lib/bucky/core/test_core/test_manager.rb index 5d7f48ce..28e7f7d5 100644 --- a/lib/bucky/core/test_core/test_manager.rb +++ b/lib/bucky/core/test_core/test_manager.rb @@ -112,6 +112,11 @@ def initialize(test_cond) def run execute_test + + # Update job record with end_time and duration when test completes + @end_time = Time.now + @duration = @end_time - @start_time + @tdo.update_job_record($job_id, @end_time, @duration) end # Rerun by job id @@ -122,6 +127,11 @@ def rerun is_error: 1, job_id: rerun_job_id, round: $round ) execute_test + + # Update job record with end_time and duration when test completes + @end_time = Time.now + @duration = @end_time - @start_time + @tdo.update_job_record($job_id, @end_time, @duration) end private