selective-ruby-core 0.2.2-aarch64-linux → 0.2.3-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b3b115bee67367e37746da4c15d29e358b8f77e7a47e386432eb7eaa29de6a6f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: beb621522ad74a6042871ab16a02c8210204913ff7f2675460a94f640ddc32b9
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ffbf6e69fee59cbc9df19072831ef1da95e3e134ef084fc38412ecabc34dccdff8a05647dad500377920c4f6606804f68cbc6908205c91cd70f52fc67c011ebb
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e5c98a6e1a757a42aecd72dde84da4a80d236d5ed938a228474af51bb187d531cf2c612456f949dbb6769e919672c86ac36b3b5cd1cec246b1725b8da70aa6ee
         
     | 
| 
         @@ -8,6 +8,7 @@ module Selective 
     | 
|
| 
       8 
8 
     | 
    
         
             
                  class Controller
         
     | 
| 
       9 
9 
     | 
    
         
             
                    include Helper
         
     | 
| 
       10 
10 
     | 
    
         
             
                    @@selective_suppress_reporting = false
         
     | 
| 
      
 11 
     | 
    
         
            +
                    @@report_at_finish = {}
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
       12 
13 
     | 
    
         
             
                    REQUIRED_CONFIGURATION = {
         
     | 
| 
       13 
14 
     | 
    
         
             
                      "host" => "SELECTIVE_HOST",
         
     | 
| 
         @@ -33,7 +34,7 @@ module Selective 
     | 
|
| 
       33 
34 
     | 
    
         
             
                      handle_termination_signals(transport_pid)
         
     | 
| 
       34 
35 
     | 
    
         
             
                      wait_for_connectivity
         
     | 
| 
       35 
36 
     | 
    
         
             
                      run_main_loop
         
     | 
| 
       36 
     | 
    
         
            -
                    rescue  
     | 
| 
      
 37 
     | 
    
         
            +
                    rescue ConnectionLostError
         
     | 
| 
       37 
38 
     | 
    
         
             
                      retry!
         
     | 
| 
       38 
39 
     | 
    
         
             
                    rescue => e
         
     | 
| 
       39 
40 
     | 
    
         
             
                      with_error_handling { raise e }
         
     | 
| 
         @@ -57,12 +58,16 @@ module Selective 
     | 
|
| 
       57 
58 
     | 
    
         
             
                      @@selective_suppress_reporting
         
     | 
| 
       58 
59 
     | 
    
         
             
                    end
         
     | 
| 
       59 
60 
     | 
    
         | 
| 
      
 61 
     | 
    
         
            +
                    def self.report_at_finish
         
     | 
| 
      
 62 
     | 
    
         
            +
                      @@report_at_finish
         
     | 
| 
      
 63 
     | 
    
         
            +
                    end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
       60 
65 
     | 
    
         
             
                    private
         
     | 
| 
       61 
66 
     | 
    
         | 
| 
       62 
67 
     | 
    
         
             
                    attr_reader :runner, :pipe, :transport_pid, :retries, :logger, :runner_id, :diff
         
     | 
| 
       63 
68 
     | 
    
         | 
| 
       64 
69 
     | 
    
         
             
                    def get_runner_id
         
     | 
| 
       65 
     | 
    
         
            -
                      runner_id = build_env 
     | 
| 
      
 70 
     | 
    
         
            +
                      runner_id = build_env["runner_id"]
         
     | 
| 
       66 
71 
     | 
    
         
             
                      return generate_runner_id if runner_id.nil? || runner_id.empty?
         
     | 
| 
       67 
72 
     | 
    
         | 
| 
       68 
73 
     | 
    
         
             
                      runner_id
         
     | 
| 
         @@ -90,10 +95,10 @@ module Selective 
     | 
|
| 
       90 
95 
     | 
    
         
             
                    def retry!
         
     | 
| 
       91 
96 
     | 
    
         
             
                      @retries += 1
         
     | 
| 
       92 
97 
     | 
    
         | 
| 
       93 
     | 
    
         
            -
                      with_error_handling { raise "Too many retries" } if retries >  
     | 
| 
      
 98 
     | 
    
         
            +
                      with_error_handling { raise "Too many retries" } if retries > 10
         
     | 
| 
       94 
99 
     | 
    
         | 
| 
       95 
     | 
    
         
            -
                      puts("Retrying in #{retries} seconds...")
         
     | 
| 
       96 
     | 
    
         
            -
                      sleep(retries)
         
     | 
| 
      
 100 
     | 
    
         
            +
                      puts("Retrying in #{retries} seconds...") if debug?
         
     | 
| 
      
 101 
     | 
    
         
            +
                      sleep(retries > 4 ? 4 : retries)
         
     | 
| 
       97 
102 
     | 
    
         
             
                      kill_transport
         
     | 
| 
       98 
103 
     | 
    
         | 
| 
       99 
104 
     | 
    
         
             
                      pipe.reset!
         
     | 
| 
         @@ -109,29 +114,30 @@ module Selective 
     | 
|
| 
       109 
114 
     | 
    
         
             
                    end
         
     | 
| 
       110 
115 
     | 
    
         | 
| 
       111 
116 
     | 
    
         
             
                    def transport_url(reconnect: false)
         
     | 
| 
       112 
     | 
    
         
            -
                       
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
      
 117 
     | 
    
         
            +
                      base_transport_url_params[:reconnect] = true if reconnect
         
     | 
| 
      
 118 
     | 
    
         
            +
                      query_string = URI.encode_www_form(base_transport_url_params)
         
     | 
| 
      
 119 
     | 
    
         
            +
                      "#{build_env["host"]}/transport/websocket?#{query_string}"
         
     | 
| 
      
 120 
     | 
    
         
            +
                    end
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
      
 122 
     | 
    
         
            +
                    def base_transport_url_params
         
     | 
| 
      
 123 
     | 
    
         
            +
                      @base_transport_url_params ||= begin
         
     | 
| 
      
 124 
     | 
    
         
            +
                        api_key = build_env["api_key"]
         
     | 
| 
      
 125 
     | 
    
         
            +
                        run_id = build_env["run_id"]
         
     | 
| 
      
 126 
     | 
    
         
            +
                        run_attempt = build_env["run_attempt"]
         
     | 
| 
       117 
127 
     | 
    
         | 
| 
       118 
     | 
    
         
            -
                         
     | 
| 
      
 128 
     | 
    
         
            +
                        metadata = build_env.reject { |k,v| %w(host runner_id api_key run_id run_attempt).include?(k) }
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
                        {
         
     | 
| 
      
 131 
     | 
    
         
            +
                          "api_key" => api_key,
         
     | 
| 
       119 
132 
     | 
    
         
             
                          "run_id" => run_id,
         
     | 
| 
       120 
133 
     | 
    
         
             
                          "run_attempt" => run_attempt,
         
     | 
| 
       121 
     | 
    
         
            -
                          "api_key" => api_key,
         
     | 
| 
       122 
134 
     | 
    
         
             
                          "runner_id" => runner_id,
         
     | 
| 
       123 
135 
     | 
    
         
             
                          "language" => "ruby",
         
     | 
| 
       124 
136 
     | 
    
         
             
                          "core_version" => Selective::Ruby::Core::VERSION,
         
     | 
| 
       125 
137 
     | 
    
         
             
                          "framework" => runner.framework,
         
     | 
| 
       126 
138 
     | 
    
         
             
                          "framework_version" => runner.framework_version,
         
     | 
| 
       127 
139 
     | 
    
         
             
                          "framework_wrapper_version" => runner.wrapper_version,
         
     | 
| 
       128 
     | 
    
         
            -
                        }.merge(metadata:  
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
     | 
    
         
            -
                        prams[:reconnect] = true if reconnect
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
                        query_string = URI.encode_www_form(params)
         
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
       134 
     | 
    
         
            -
                        "#{host}/transport/websocket?#{query_string}"
         
     | 
| 
      
 140 
     | 
    
         
            +
                        }.merge(metadata: metadata.to_json)
         
     | 
| 
       135 
141 
     | 
    
         
             
                      end
         
     | 
| 
       136 
142 
     | 
    
         
             
                    end
         
     | 
| 
       137 
143 
     | 
    
         | 
| 
         @@ -224,7 +230,7 @@ module Selective 
     | 
|
| 
       224 
230 
     | 
    
         | 
| 
       225 
231 
     | 
    
         
             
                          sleep(1)
         
     | 
| 
       226 
232 
     | 
    
         
             
                        end
         
     | 
| 
       227 
     | 
    
         
            -
                      rescue  
     | 
| 
      
 233 
     | 
    
         
            +
                      rescue ConnectionLostError, IOError
         
     | 
| 
       228 
234 
     | 
    
         
             
                        # If the pipe is close, move straight to killing
         
     | 
| 
       229 
235 
     | 
    
         
             
                        # it forcefully.
         
     | 
| 
       230 
236 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -270,8 +276,11 @@ module Selective 
     | 
|
| 
       270 
276 
     | 
    
         
             
                      runner.run_test_cases(data[:test_case_ids])
         
     | 
| 
       271 
277 
     | 
    
         
             
                    end
         
     | 
| 
       272 
278 
     | 
    
         | 
| 
      
 279 
     | 
    
         
            +
                    # Todo: Rename this command to match the method name
         
     | 
| 
      
 280 
     | 
    
         
            +
                    # on the runner wrapper. We should do something similar
         
     | 
| 
      
 281 
     | 
    
         
            +
                    # to normalize handle_print_notice and handle_print_message
         
     | 
| 
       273 
282 
     | 
    
         
             
                    def handle_remove_failed_test_case_result(data)
         
     | 
| 
       274 
     | 
    
         
            -
                      runner. 
     | 
| 
      
 283 
     | 
    
         
            +
                      runner.remove_test_case_result(data[:test_case_id])
         
     | 
| 
       275 
284 
     | 
    
         
             
                    end
         
     | 
| 
       276 
285 
     | 
    
         | 
| 
       277 
286 
     | 
    
         
             
                    def handle_print_message(data)
         
     | 
| 
         @@ -281,7 +290,13 @@ module Selective 
     | 
|
| 
       281 
290 
     | 
    
         
             
                    def handle_close(data)
         
     | 
| 
       282 
291 
     | 
    
         
             
                      exit_status = data[:exit_status]
         
     | 
| 
       283 
292 
     | 
    
         
             
                      self.class.restore_reporting!
         
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
      
 293 
     | 
    
         
            +
             
     | 
| 
      
 294 
     | 
    
         
            +
                      with_error_handling do
         
     | 
| 
      
 295 
     | 
    
         
            +
                        Selective::Ruby::Core::Controller.report_at_finish[:connection_retries] = @retries
         
     | 
| 
      
 296 
     | 
    
         
            +
                        write({type: "report_at_finish", data: Selective::Ruby::Core::Controller.report_at_finish})
         
     | 
| 
      
 297 
     | 
    
         
            +
             
     | 
| 
      
 298 
     | 
    
         
            +
                        runner.finish unless exit_status.is_a?(Integer)
         
     | 
| 
      
 299 
     | 
    
         
            +
                      end
         
     | 
| 
       285 
300 
     | 
    
         | 
| 
       286 
301 
     | 
    
         
             
                      kill_transport
         
     | 
| 
       287 
302 
     | 
    
         
             
                      pipe.delete_pipes
         
     | 
| 
         @@ -9,7 +9,7 @@ module Selective 
     | 
|
| 
       9 
9 
     | 
    
         
             
                    FILE_CORRELATION_COLLECTOR_PATH = File.join(ROOT_GEM_PATH, "lib", "bin", "file_correlation_collector.sh")
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                    def initialize(diff, num_commits, target_branch)
         
     | 
| 
       12 
     | 
    
         
            -
                      @diff = diff
         
     | 
| 
      
 12 
     | 
    
         
            +
                      @diff = diff.reject {|f| f =~ /^spec\// }
         
     | 
| 
       13 
13 
     | 
    
         
             
                      @num_commits = num_commits
         
     | 
| 
       14 
14 
     | 
    
         
             
                      @target_branch = target_branch
         
     | 
| 
       15 
15 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -2,8 +2,6 @@ module Selective 
     | 
|
| 
       2 
2 
     | 
    
         
             
              module Ruby
         
     | 
| 
       3 
3 
     | 
    
         
             
                module Core
         
     | 
| 
       4 
4 
     | 
    
         
             
                  class NamedPipe
         
     | 
| 
       5 
     | 
    
         
            -
                    class PipeClosedError < StandardError; end
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
5 
     | 
    
         
             
                    attr_reader :read_pipe_path, :write_pipe_path
         
     | 
| 
       8 
6 
     | 
    
         | 
| 
       9 
7 
     | 
    
         
             
                    def initialize(read_pipe_path, write_pipe_path, skip_reset: false)
         
     | 
| 
         @@ -44,7 +42,7 @@ module Selective 
     | 
|
| 
       44 
42 
     | 
    
         
             
                        write_pipe.write("\n")
         
     | 
| 
       45 
43 
     | 
    
         
             
                        write_pipe.flush
         
     | 
| 
       46 
44 
     | 
    
         
             
                      rescue Errno::EPIPE
         
     | 
| 
       47 
     | 
    
         
            -
                        raise  
     | 
| 
      
 45 
     | 
    
         
            +
                        raise ConnectionLostError
         
     | 
| 
       48 
46 
     | 
    
         
             
                      end
         
     | 
| 
       49 
47 
     | 
    
         
             
                    end
         
     | 
| 
       50 
48 
     | 
    
         | 
| 
         @@ -54,7 +52,7 @@ module Selective 
     | 
|
| 
       54 
52 
     | 
    
         
             
                        message = read_pipe.gets.chomp
         
     | 
| 
       55 
53 
     | 
    
         
             
                      rescue NoMethodError => e
         
     | 
| 
       56 
54 
     | 
    
         
             
                        if e.name == :chomp
         
     | 
| 
       57 
     | 
    
         
            -
                          raise  
     | 
| 
      
 55 
     | 
    
         
            +
                          raise ConnectionLostError
         
     | 
| 
       58 
56 
     | 
    
         
             
                        else
         
     | 
| 
       59 
57 
     | 
    
         
             
                          raise e
         
     | 
| 
       60 
58 
     | 
    
         
             
                        end
         
     | 
    
        data/lib/selective-ruby-core.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: selective-ruby-core
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.2.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: aarch64-linux
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Benjamin Wood
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2024- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2024-02-06 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: zeitwerk
         
     |