knapsack_pro 4.1.0 → 5.0.0
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 +4 -4
 - data/CHANGELOG.md +20 -2
 - data/lib/knapsack_pro/config/ci/app_veyor.rb +8 -0
 - data/lib/knapsack_pro/config/ci/base.rb +7 -0
 - data/lib/knapsack_pro/config/ci/buildkite.rb +8 -0
 - data/lib/knapsack_pro/config/ci/circle.rb +8 -0
 - data/lib/knapsack_pro/config/ci/cirrus_ci.rb +8 -0
 - data/lib/knapsack_pro/config/ci/codefresh.rb +8 -0
 - data/lib/knapsack_pro/config/ci/codeship.rb +8 -0
 - data/lib/knapsack_pro/config/ci/github_actions.rb +8 -0
 - data/lib/knapsack_pro/config/ci/gitlab_ci.rb +8 -0
 - data/lib/knapsack_pro/config/ci/heroku.rb +8 -0
 - data/lib/knapsack_pro/config/ci/semaphore.rb +8 -0
 - data/lib/knapsack_pro/config/ci/semaphore2.rb +9 -0
 - data/lib/knapsack_pro/config/ci/travis.rb +8 -0
 - data/lib/knapsack_pro/config/env.rb +20 -11
 - data/lib/knapsack_pro/version.rb +1 -1
 - data/lib/tasks/queue/cucumber.rake +5 -0
 - data/lib/tasks/queue/minitest.rake +5 -0
 - data/lib/tasks/queue/rspec.rake +5 -0
 - data/spec/knapsack_pro/config/env_spec.rb +102 -87
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ee1c87eca84a9ac30345268d7d2e9ac71d09003098e5173f73c0a3afccfea7bf
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 52d53bd9c42699151ec2ac5ed6d340cbcdd0b632b88f2da60fcae54db3984090
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 8afa9cc8410a16af780fcc854ebed0f50959eaa8c5cbdbe8fadb67e3822494ef2f18d56ee6158b1503d4db5be129a308e1e7794aab853685163b9888d70f18be
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 4304ce7d54d20e43ed4576989f9700ef68f25a099671cb42a578f27ccb6fcc67dd1d2c7c0c546a96a0af9a570bc5b6c8c6c2d0742c6f1868f7a77557cd50d45f
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,16 +1,34 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #  
     | 
| 
      
 1 
     | 
    
         
            +
            # Changelog
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            ### 5.0.0
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            * __(breaking change)__ Use `KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true` as default value in Queue Mode and use `false` for proper CI providers
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                https://github.com/KnapsackPro/knapsack_pro-ruby/pull/198
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            * Detect CI from environment and get the correct ENVs instead of trying all of them and risk conflicts
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                https://github.com/KnapsackPro/knapsack_pro-ruby/pull/201
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            * Set `RAILS_ENV=test` / `RACK_ENV=test` in Queue Mode
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                https://github.com/KnapsackPro/knapsack_pro-ruby/pull/199
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v4.1.0...v5.0.0
         
     | 
| 
       2 
18 
     | 
    
         | 
| 
       3 
19 
     | 
    
         
             
            ### 4.1.0
         
     | 
| 
       4 
20 
     | 
    
         | 
| 
       5 
21 
     | 
    
         
             
            * Add support for CI node retry count on GitHub Actions
         
     | 
| 
       6 
22 
     | 
    
         | 
| 
      
 23 
     | 
    
         
            +
                __(breaking change)__ for open-source forked repositories using GitHub Actions. See a fix in PR description:
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       7 
25 
     | 
    
         
             
                https://github.com/KnapsackPro/knapsack_pro-ruby/pull/197
         
     | 
| 
       8 
26 
     | 
    
         | 
| 
       9 
27 
     | 
    
         
             
            https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v4.0.0...v4.1.0
         
     | 
| 
       10 
28 
     | 
    
         | 
| 
       11 
29 
     | 
    
         
             
            ### 4.0.0
         
     | 
| 
       12 
30 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            * Raise when `KNAPSACK_PRO_CI_NODE_BUILD_ID` is missing
         
     | 
| 
      
 31 
     | 
    
         
            +
            * __(breaking change)__  Raise when `KNAPSACK_PRO_CI_NODE_BUILD_ID` is missing
         
     | 
| 
       14 
32 
     | 
    
         | 
| 
       15 
33 
     | 
    
         
             
                https://github.com/KnapsackPro/knapsack_pro-ruby/pull/195
         
     | 
| 
       16 
34 
     | 
    
         | 
| 
         @@ -37,6 +37,14 @@ module KnapsackPro 
     | 
|
| 
       37 
37 
     | 
    
         
             
                      ENV['GITLAB_USER_NAME'] || # Gitlab Release 10.0
         
     | 
| 
       38 
38 
     | 
    
         
             
                      ENV['GITLAB_USER_EMAIL'] # Gitlab Release 8.12
         
     | 
| 
       39 
39 
     | 
    
         
             
                    end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                    def detected
         
     | 
| 
      
 42 
     | 
    
         
            +
                      ENV.key?('GITLAB_CI') ? self.class : nil
         
     | 
| 
      
 43 
     | 
    
         
            +
                    end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    def fixed_queue_split
         
     | 
| 
      
 46 
     | 
    
         
            +
                      false
         
     | 
| 
      
 47 
     | 
    
         
            +
                    end
         
     | 
| 
       40 
48 
     | 
    
         
             
                  end
         
     | 
| 
       41 
49 
     | 
    
         
             
                end
         
     | 
| 
       42 
50 
     | 
    
         
             
              end
         
     | 
| 
         @@ -29,6 +29,15 @@ module KnapsackPro 
     | 
|
| 
       29 
29 
     | 
    
         
             
                        "#{ENV['HOME']}/#{ENV['SEMAPHORE_GIT_DIR']}"
         
     | 
| 
       30 
30 
     | 
    
         
             
                      end
         
     | 
| 
       31 
31 
     | 
    
         
             
                    end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    def detected
         
     | 
| 
      
 34 
     | 
    
         
            +
                      # check 2 keys to be sure we are using Semaphore 2.0
         
     | 
| 
      
 35 
     | 
    
         
            +
                      ENV.key?('SEMAPHORE') && ENV.key?('SEMAPHORE_WORKFLOW_ID') ? self.class : nil
         
     | 
| 
      
 36 
     | 
    
         
            +
                    end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                    def fixed_queue_split
         
     | 
| 
      
 39 
     | 
    
         
            +
                      false
         
     | 
| 
      
 40 
     | 
    
         
            +
                    end
         
     | 
| 
       32 
41 
     | 
    
         
             
                  end
         
     | 
| 
       33 
42 
     | 
    
         
             
                end
         
     | 
| 
       34 
43 
     | 
    
         
             
              end
         
     | 
| 
         @@ -186,7 +186,16 @@ module KnapsackPro 
     | 
|
| 
       186 
186 
     | 
    
         
             
                    end
         
     | 
| 
       187 
187 
     | 
    
         | 
| 
       188 
188 
     | 
    
         
             
                    def fixed_queue_split
         
     | 
| 
       189 
     | 
    
         
            -
                       
     | 
| 
      
 189 
     | 
    
         
            +
                      @fixed_queue_split ||= begin
         
     | 
| 
      
 190 
     | 
    
         
            +
                        env_name = 'KNAPSACK_PRO_FIXED_QUEUE_SPLIT'
         
     | 
| 
      
 191 
     | 
    
         
            +
                        computed = ENV.fetch(env_name, ci_env_for(:fixed_queue_split)).to_s
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
      
 193 
     | 
    
         
            +
                        if !ENV.key?(env_name)
         
     | 
| 
      
 194 
     | 
    
         
            +
                          KnapsackPro.logger.info("#{env_name} is not set. Using default value: #{computed}. Learn more at #{KnapsackPro::Urls::FIXED_QUEUE_SPLIT}")
         
     | 
| 
      
 195 
     | 
    
         
            +
                        end
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
      
 197 
     | 
    
         
            +
                        computed
         
     | 
| 
      
 198 
     | 
    
         
            +
                      end
         
     | 
| 
       190 
199 
     | 
    
         
             
                    end
         
     | 
| 
       191 
200 
     | 
    
         | 
| 
       192 
201 
     | 
    
         
             
                    def fixed_queue_split?
         
     | 
| 
         @@ -246,17 +255,17 @@ module KnapsackPro 
     | 
|
| 
       246 
255 
     | 
    
         
             
                    end
         
     | 
| 
       247 
256 
     | 
    
         | 
| 
       248 
257 
     | 
    
         
             
                    def ci_env_for(env_name)
         
     | 
| 
       249 
     | 
    
         
            -
                       
     | 
| 
       250 
     | 
    
         
            -
             
     | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
             
     | 
| 
       253 
     | 
    
         
            -
                       
     | 
| 
       254 
     | 
    
         
            -
                         
     | 
| 
       255 
     | 
    
         
            -
                        ci = ci_class.new
         
     | 
| 
       256 
     | 
    
         
            -
                        value = ci.send(env_name)
         
     | 
| 
       257 
     | 
    
         
            -
                        break unless value.nil?
         
     | 
| 
      
 258 
     | 
    
         
            +
                      detected_ci.new.send(env_name)
         
     | 
| 
      
 259 
     | 
    
         
            +
                    end
         
     | 
| 
      
 260 
     | 
    
         
            +
             
     | 
| 
      
 261 
     | 
    
         
            +
                    def detected_ci
         
     | 
| 
      
 262 
     | 
    
         
            +
                      detected = KnapsackPro::Config::CI.constants.map do |constant|
         
     | 
| 
      
 263 
     | 
    
         
            +
                        Object.const_get("KnapsackPro::Config::CI::#{constant}").new.detected
         
     | 
| 
       258 
264 
     | 
    
         
             
                      end
         
     | 
| 
       259 
     | 
    
         
            -
             
     | 
| 
      
 265 
     | 
    
         
            +
                        .compact
         
     | 
| 
      
 266 
     | 
    
         
            +
                        .first
         
     | 
| 
      
 267 
     | 
    
         
            +
             
     | 
| 
      
 268 
     | 
    
         
            +
                      detected || KnapsackPro::Config::CI::Base
         
     | 
| 
       260 
269 
     | 
    
         
             
                    end
         
     | 
| 
       261 
270 
     | 
    
         | 
| 
       262 
271 
     | 
    
         
             
                    def log_level
         
     | 
    
        data/lib/knapsack_pro/version.rb
    CHANGED
    
    
| 
         @@ -3,6 +3,11 @@ require 'knapsack_pro' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            namespace :knapsack_pro do
         
     | 
| 
       4 
4 
     | 
    
         
             
              namespace :queue do
         
     | 
| 
       5 
5 
     | 
    
         
             
                task :cucumber, [:cucumber_args] do |_, args|
         
     | 
| 
      
 6 
     | 
    
         
            +
                  Kernel.system("RAILS_ENV=test RACK_ENV=test #{$PROGRAM_NAME} 'knapsack_pro:queue:cucumber_go[#{args[:cucumber_args]}]'")
         
     | 
| 
      
 7 
     | 
    
         
            +
                  Kernel.exit($?.exitstatus)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                task :cucumber_go, [:cucumber_args] do |_, args|
         
     | 
| 
       6 
11 
     | 
    
         
             
                  KnapsackPro::Runners::Queue::CucumberRunner.run(args[:cucumber_args])
         
     | 
| 
       7 
12 
     | 
    
         
             
                end
         
     | 
| 
       8 
13 
     | 
    
         
             
              end
         
     | 
| 
         @@ -3,6 +3,11 @@ require 'knapsack_pro' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            namespace :knapsack_pro do
         
     | 
| 
       4 
4 
     | 
    
         
             
              namespace :queue do
         
     | 
| 
       5 
5 
     | 
    
         
             
                task :minitest, [:minitest_args] do |_, args|
         
     | 
| 
      
 6 
     | 
    
         
            +
                  Kernel.system("RAILS_ENV=test RACK_ENV=test #{$PROGRAM_NAME} 'knapsack_pro:queue:minitest_go[#{args[:minitest_args]}]'")
         
     | 
| 
      
 7 
     | 
    
         
            +
                  Kernel.exit($?.exitstatus)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                task :minitest_go, [:minitest_args] do |_, args|
         
     | 
| 
       6 
11 
     | 
    
         
             
                  KnapsackPro::Runners::Queue::MinitestRunner.run(args[:minitest_args])
         
     | 
| 
       7 
12 
     | 
    
         
             
                end
         
     | 
| 
       8 
13 
     | 
    
         
             
              end
         
     | 
    
        data/lib/tasks/queue/rspec.rake
    CHANGED
    
    | 
         @@ -3,6 +3,11 @@ require 'knapsack_pro' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            namespace :knapsack_pro do
         
     | 
| 
       4 
4 
     | 
    
         
             
              namespace :queue do
         
     | 
| 
       5 
5 
     | 
    
         
             
                task :rspec, [:rspec_args] do |_, args|
         
     | 
| 
      
 6 
     | 
    
         
            +
                  Kernel.system("RAILS_ENV=test RACK_ENV=test #{$PROGRAM_NAME} 'knapsack_pro:queue:rspec_go[#{args[:rspec_args]}]'")
         
     | 
| 
      
 7 
     | 
    
         
            +
                  Kernel.exit($?.exitstatus)
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                task :rspec_go, [:rspec_args] do |_, args|
         
     | 
| 
       6 
11 
     | 
    
         
             
                  KnapsackPro::Runners::Queue::RSpecRunner.run(args[:rspec_args])
         
     | 
| 
       7 
12 
     | 
    
         
             
                end
         
     | 
| 
       8 
13 
     | 
    
         
             
              end
         
     | 
| 
         @@ -632,20 +632,6 @@ describe KnapsackPro::Config::Env do 
     | 
|
| 
       632 
632 
     | 
    
         
             
                end
         
     | 
| 
       633 
633 
     | 
    
         
             
              end
         
     | 
| 
       634 
634 
     | 
    
         | 
| 
       635 
     | 
    
         
            -
              describe '.fixed_test_suite_split' do
         
     | 
| 
       636 
     | 
    
         
            -
                subject { described_class.fixed_test_suite_split }
         
     | 
| 
       637 
     | 
    
         
            -
             
     | 
| 
       638 
     | 
    
         
            -
                context 'when ENV exists' do
         
     | 
| 
       639 
     | 
    
         
            -
                  before { stub_const("ENV", { 'KNAPSACK_PRO_FIXED_TEST_SUITE_SPLIT' => false }) }
         
     | 
| 
       640 
     | 
    
         
            -
                  it { should eq false }
         
     | 
| 
       641 
     | 
    
         
            -
                end
         
     | 
| 
       642 
     | 
    
         
            -
             
     | 
| 
       643 
     | 
    
         
            -
                context "when ENV doesn't exist" do
         
     | 
| 
       644 
     | 
    
         
            -
                  before { stub_const("ENV", {}) }
         
     | 
| 
       645 
     | 
    
         
            -
                  it { should be true }
         
     | 
| 
       646 
     | 
    
         
            -
                end
         
     | 
| 
       647 
     | 
    
         
            -
              end
         
     | 
| 
       648 
     | 
    
         
            -
             
     | 
| 
       649 
635 
     | 
    
         
             
              describe '.fixed_test_suite_split?' do
         
     | 
| 
       650 
636 
     | 
    
         
             
                subject { described_class.fixed_test_suite_split? }
         
     | 
| 
       651 
637 
     | 
    
         | 
| 
         @@ -667,38 +653,94 @@ describe KnapsackPro::Config::Env do 
     | 
|
| 
       667 
653 
     | 
    
         
             
                end
         
     | 
| 
       668 
654 
     | 
    
         
             
              end
         
     | 
| 
       669 
655 
     | 
    
         | 
| 
       670 
     | 
    
         
            -
              describe '.fixed_queue_split' do
         
     | 
| 
       671 
     | 
    
         
            -
                subject { described_class.fixed_queue_split }
         
     | 
| 
       672 
     | 
    
         
            -
             
     | 
| 
       673 
     | 
    
         
            -
                context 'when ENV exists' do
         
     | 
| 
       674 
     | 
    
         
            -
                  before { stub_const("ENV", { 'KNAPSACK_PRO_FIXED_QUEUE_SPLIT' => true }) }
         
     | 
| 
       675 
     | 
    
         
            -
                  it { should eq true }
         
     | 
| 
       676 
     | 
    
         
            -
                end
         
     | 
| 
       677 
     | 
    
         
            -
             
     | 
| 
       678 
     | 
    
         
            -
                context "when ENV doesn't exist" do
         
     | 
| 
       679 
     | 
    
         
            -
                  before { stub_const("ENV", {}) }
         
     | 
| 
       680 
     | 
    
         
            -
                  it { should be false }
         
     | 
| 
       681 
     | 
    
         
            -
                end
         
     | 
| 
       682 
     | 
    
         
            -
              end
         
     | 
| 
       683 
     | 
    
         
            -
             
     | 
| 
       684 
656 
     | 
    
         
             
              describe '.fixed_queue_split?' do
         
     | 
| 
       685 
657 
     | 
    
         
             
                subject { described_class.fixed_queue_split? }
         
     | 
| 
      
 658 
     | 
    
         
            +
                after(:each) { described_class.remove_instance_variable(:@fixed_queue_split) }
         
     | 
| 
       686 
659 
     | 
    
         | 
| 
       687 
660 
     | 
    
         
             
                context 'when ENV exists' do
         
     | 
| 
       688 
     | 
    
         
            -
                  context 'when KNAPSACK_PRO_FIXED_QUEUE_SPLIT= 
     | 
| 
       689 
     | 
    
         
            -
                     
     | 
| 
       690 
     | 
    
         
            -
             
     | 
| 
      
 661 
     | 
    
         
            +
                  context 'when KNAPSACK_PRO_FIXED_QUEUE_SPLIT=false' do
         
     | 
| 
      
 662 
     | 
    
         
            +
                    [
         
     | 
| 
      
 663 
     | 
    
         
            +
                      ['AppVeyor', { 'APPVEYOR' => '123' }],
         
     | 
| 
      
 664 
     | 
    
         
            +
                      ['Buildkite', { 'BUILDKITE' => 'true' }],
         
     | 
| 
      
 665 
     | 
    
         
            +
                      ['CircleCI', { 'CIRCLECI' => 'true' }],
         
     | 
| 
      
 666 
     | 
    
         
            +
                      ['Cirrus CI', { 'CIRRUS_CI' => 'true' }],
         
     | 
| 
      
 667 
     | 
    
         
            +
                      ['Codefresh', { 'CF_BUILD_ID' => '123' }],
         
     | 
| 
      
 668 
     | 
    
         
            +
                      ['Codeship', { 'CI_NAME' => 'codeship' }],
         
     | 
| 
      
 669 
     | 
    
         
            +
                      ['GitHub Actions', { 'GITHUB_ACTIONS' => 'true' }],
         
     | 
| 
      
 670 
     | 
    
         
            +
                      ['GitLab CI', { 'GITLAB_CI' => 'true' }],
         
     | 
| 
      
 671 
     | 
    
         
            +
                      ['Heroku CI', { 'HEROKU_TEST_RUN_ID' => '123' }],
         
     | 
| 
      
 672 
     | 
    
         
            +
                      ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }],
         
     | 
| 
      
 673 
     | 
    
         
            +
                      ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }],
         
     | 
| 
      
 674 
     | 
    
         
            +
                      ['Travis CI', { 'TRAVIS' => 'true' }],
         
     | 
| 
      
 675 
     | 
    
         
            +
                      ['Unsupported', {}],
         
     | 
| 
      
 676 
     | 
    
         
            +
                    ].each do |ci, env|
         
     | 
| 
      
 677 
     | 
    
         
            +
                      it "on #{ci} it is false" do
         
     | 
| 
      
 678 
     | 
    
         
            +
                        logger = instance_double(Logger)
         
     | 
| 
      
 679 
     | 
    
         
            +
                        allow(KnapsackPro).to receive(:logger).and_return(logger)
         
     | 
| 
      
 680 
     | 
    
         
            +
                        expect(logger).not_to receive(:info)
         
     | 
| 
      
 681 
     | 
    
         
            +
             
     | 
| 
      
 682 
     | 
    
         
            +
                        stub_const("ENV", env.merge({ 'KNAPSACK_PRO_FIXED_QUEUE_SPLIT' => 'false' }))
         
     | 
| 
      
 683 
     | 
    
         
            +
             
     | 
| 
      
 684 
     | 
    
         
            +
                        expect(subject).to eq(false)
         
     | 
| 
      
 685 
     | 
    
         
            +
                      end
         
     | 
| 
      
 686 
     | 
    
         
            +
                    end
         
     | 
| 
       691 
687 
     | 
    
         
             
                  end
         
     | 
| 
       692 
688 
     | 
    
         | 
| 
       693 
     | 
    
         
            -
                  context 'when KNAPSACK_PRO_FIXED_QUEUE_SPLIT= 
     | 
| 
       694 
     | 
    
         
            -
                     
     | 
| 
       695 
     | 
    
         
            -
             
     | 
| 
      
 689 
     | 
    
         
            +
                  context 'when KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true' do
         
     | 
| 
      
 690 
     | 
    
         
            +
                    [
         
     | 
| 
      
 691 
     | 
    
         
            +
                      ['AppVeyor', { 'APPVEYOR' => '123' }],
         
     | 
| 
      
 692 
     | 
    
         
            +
                      ['Buildkite', { 'BUILDKITE' => 'true' }],
         
     | 
| 
      
 693 
     | 
    
         
            +
                      ['CircleCI', { 'CIRCLECI' => 'true' }],
         
     | 
| 
      
 694 
     | 
    
         
            +
                      ['Cirrus CI', { 'CIRRUS_CI' => 'true' }],
         
     | 
| 
      
 695 
     | 
    
         
            +
                      ['Codefresh', { 'CF_BUILD_ID' => '123' }],
         
     | 
| 
      
 696 
     | 
    
         
            +
                      ['Codeship', { 'CI_NAME' => 'codeship' }],
         
     | 
| 
      
 697 
     | 
    
         
            +
                      ['GitHub Actions', { 'GITHUB_ACTIONS' => 'true' }],
         
     | 
| 
      
 698 
     | 
    
         
            +
                      ['GitLab CI', { 'GITLAB_CI' => 'true' }],
         
     | 
| 
      
 699 
     | 
    
         
            +
                      ['Heroku CI', { 'HEROKU_TEST_RUN_ID' => '123' }],
         
     | 
| 
      
 700 
     | 
    
         
            +
                      ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }],
         
     | 
| 
      
 701 
     | 
    
         
            +
                      ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }],
         
     | 
| 
      
 702 
     | 
    
         
            +
                      ['Travis CI', { 'TRAVIS' => 'true' }],
         
     | 
| 
      
 703 
     | 
    
         
            +
                      ['Unsupported', {}],
         
     | 
| 
      
 704 
     | 
    
         
            +
                    ].each do |ci, env|
         
     | 
| 
      
 705 
     | 
    
         
            +
                      it "on #{ci} it is true" do
         
     | 
| 
      
 706 
     | 
    
         
            +
                        logger = instance_double(Logger)
         
     | 
| 
      
 707 
     | 
    
         
            +
                        allow(KnapsackPro).to receive(:logger).and_return(logger)
         
     | 
| 
      
 708 
     | 
    
         
            +
                        expect(logger).not_to receive(:info)
         
     | 
| 
      
 709 
     | 
    
         
            +
             
     | 
| 
      
 710 
     | 
    
         
            +
                        stub_const("ENV", env.merge({ 'KNAPSACK_PRO_FIXED_QUEUE_SPLIT' => 'true' }))
         
     | 
| 
      
 711 
     | 
    
         
            +
             
     | 
| 
      
 712 
     | 
    
         
            +
                        expect(subject).to eq(true)
         
     | 
| 
      
 713 
     | 
    
         
            +
                      end
         
     | 
| 
      
 714 
     | 
    
         
            +
                    end
         
     | 
| 
       696 
715 
     | 
    
         
             
                  end
         
     | 
| 
       697 
716 
     | 
    
         
             
                end
         
     | 
| 
       698 
717 
     | 
    
         | 
| 
       699 
718 
     | 
    
         
             
                context "when ENV doesn't exist" do
         
     | 
| 
       700 
     | 
    
         
            -
                   
     | 
| 
       701 
     | 
    
         
            -
             
     | 
| 
      
 719 
     | 
    
         
            +
                  [
         
     | 
| 
      
 720 
     | 
    
         
            +
                    ['AppVeyor', { 'APPVEYOR' => '123' }, false],
         
     | 
| 
      
 721 
     | 
    
         
            +
                    ['Buildkite', { 'BUILDKITE' => 'true' }, true],
         
     | 
| 
      
 722 
     | 
    
         
            +
                    ['CircleCI', { 'CIRCLECI' => 'true' }, false],
         
     | 
| 
      
 723 
     | 
    
         
            +
                    ['Cirrus CI', { 'CIRRUS_CI' => 'true' }, false],
         
     | 
| 
      
 724 
     | 
    
         
            +
                    ['Codefresh', { 'CF_BUILD_ID' => '123' }, false],
         
     | 
| 
      
 725 
     | 
    
         
            +
                    ['Codeship', { 'CI_NAME' => 'codeship' }, true],
         
     | 
| 
      
 726 
     | 
    
         
            +
                    ['GitHub Actions', { 'GITHUB_ACTIONS' => 'true' }, true],
         
     | 
| 
      
 727 
     | 
    
         
            +
                    ['GitLab CI', { 'GITLAB_CI' => 'true' }, false],
         
     | 
| 
      
 728 
     | 
    
         
            +
                    ['Heroku CI', { 'HEROKU_TEST_RUN_ID' => '123' }, false],
         
     | 
| 
      
 729 
     | 
    
         
            +
                    ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }, false],
         
     | 
| 
      
 730 
     | 
    
         
            +
                    ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }, false],
         
     | 
| 
      
 731 
     | 
    
         
            +
                    ['Travis CI', { 'TRAVIS' => 'true' }, true],
         
     | 
| 
      
 732 
     | 
    
         
            +
                    ['Unsupported', {}, true],
         
     | 
| 
      
 733 
     | 
    
         
            +
                  ].each do |ci, env, expected|
         
     | 
| 
      
 734 
     | 
    
         
            +
                    it "on #{ci} it is #{expected}" do
         
     | 
| 
      
 735 
     | 
    
         
            +
                      logger = instance_double(Logger)
         
     | 
| 
      
 736 
     | 
    
         
            +
                      expect(KnapsackPro).to receive(:logger).and_return(logger)
         
     | 
| 
      
 737 
     | 
    
         
            +
                      expect(logger).to receive(:info).with("KNAPSACK_PRO_FIXED_QUEUE_SPLIT is not set. Using default value: #{expected}. Learn more at #{KnapsackPro::Urls::FIXED_QUEUE_SPLIT}")
         
     | 
| 
      
 738 
     | 
    
         
            +
             
     | 
| 
      
 739 
     | 
    
         
            +
                      stub_const("ENV", env)
         
     | 
| 
      
 740 
     | 
    
         
            +
             
     | 
| 
      
 741 
     | 
    
         
            +
                      expect(subject).to eq(expected)
         
     | 
| 
      
 742 
     | 
    
         
            +
                    end
         
     | 
| 
      
 743 
     | 
    
         
            +
                  end
         
     | 
| 
       702 
744 
     | 
    
         
             
                end
         
     | 
| 
       703 
745 
     | 
    
         
             
              end
         
     | 
| 
       704 
746 
     | 
    
         | 
| 
         @@ -895,57 +937,6 @@ describe KnapsackPro::Config::Env do 
     | 
|
| 
       895 
937 
     | 
    
         
             
                end
         
     | 
| 
       896 
938 
     | 
    
         
             
              end
         
     | 
| 
       897 
939 
     | 
    
         | 
| 
       898 
     | 
    
         
            -
              describe '.ci_env_for' do
         
     | 
| 
       899 
     | 
    
         
            -
                let(:env_name) { :node_total }
         
     | 
| 
       900 
     | 
    
         
            -
             
     | 
| 
       901 
     | 
    
         
            -
                subject { described_class.ci_env_for(env_name) }
         
     | 
| 
       902 
     | 
    
         
            -
             
     | 
| 
       903 
     | 
    
         
            -
                context 'when CI has no value for env_name method' do
         
     | 
| 
       904 
     | 
    
         
            -
                  before do
         
     | 
| 
       905 
     | 
    
         
            -
                    expect(KnapsackPro::Config::CI::Circle).to receive_message_chain(:new, env_name).and_return(nil)
         
     | 
| 
       906 
     | 
    
         
            -
                    expect(KnapsackPro::Config::CI::Semaphore).to receive_message_chain(:new, env_name).and_return(nil)
         
     | 
| 
       907 
     | 
    
         
            -
                    expect(KnapsackPro::Config::CI::Buildkite).to receive_message_chain(:new, env_name).and_return(nil)
         
     | 
| 
       908 
     | 
    
         
            -
                  end
         
     | 
| 
       909 
     | 
    
         
            -
             
     | 
| 
       910 
     | 
    
         
            -
                  it do
         
     | 
| 
       911 
     | 
    
         
            -
                    expect(subject).to be_nil
         
     | 
| 
       912 
     | 
    
         
            -
                  end
         
     | 
| 
       913 
     | 
    
         
            -
                end
         
     | 
| 
       914 
     | 
    
         
            -
             
     | 
| 
       915 
     | 
    
         
            -
                context 'when CI has value for env_name method' do
         
     | 
| 
       916 
     | 
    
         
            -
                  let(:circle_env) { double(:circle) }
         
     | 
| 
       917 
     | 
    
         
            -
                  let(:semaphore_env) { double(:semaphore) }
         
     | 
| 
       918 
     | 
    
         
            -
                  let(:buildkite_env) { double(:buildkite) }
         
     | 
| 
       919 
     | 
    
         
            -
             
     | 
| 
       920 
     | 
    
         
            -
                  before do
         
     | 
| 
       921 
     | 
    
         
            -
                    allow(KnapsackPro::Config::CI::Circle).to receive_message_chain(:new, env_name).and_return(circle_env)
         
     | 
| 
       922 
     | 
    
         
            -
                    allow(KnapsackPro::Config::CI::Semaphore).to receive_message_chain(:new, env_name).and_return(semaphore_env)
         
     | 
| 
       923 
     | 
    
         
            -
                    allow(KnapsackPro::Config::CI::Buildkite).to receive_message_chain(:new, env_name).and_return(buildkite_env)
         
     | 
| 
       924 
     | 
    
         
            -
                  end
         
     | 
| 
       925 
     | 
    
         
            -
             
     | 
| 
       926 
     | 
    
         
            -
                  context do
         
     | 
| 
       927 
     | 
    
         
            -
                    let(:buildkite_env) { nil }
         
     | 
| 
       928 
     | 
    
         
            -
                    let(:semaphore_env) { nil }
         
     | 
| 
       929 
     | 
    
         
            -
             
     | 
| 
       930 
     | 
    
         
            -
                    it { should eq circle_env }
         
     | 
| 
       931 
     | 
    
         
            -
                  end
         
     | 
| 
       932 
     | 
    
         
            -
             
     | 
| 
       933 
     | 
    
         
            -
                  context do
         
     | 
| 
       934 
     | 
    
         
            -
                    let(:circle_env) { nil }
         
     | 
| 
       935 
     | 
    
         
            -
                    let(:buildkite_env) { nil }
         
     | 
| 
       936 
     | 
    
         
            -
             
     | 
| 
       937 
     | 
    
         
            -
                    it { should eq semaphore_env }
         
     | 
| 
       938 
     | 
    
         
            -
                  end
         
     | 
| 
       939 
     | 
    
         
            -
             
     | 
| 
       940 
     | 
    
         
            -
                  context do
         
     | 
| 
       941 
     | 
    
         
            -
                    let(:circle_env) { nil }
         
     | 
| 
       942 
     | 
    
         
            -
                    let(:semaphore_env) { nil }
         
     | 
| 
       943 
     | 
    
         
            -
             
     | 
| 
       944 
     | 
    
         
            -
                    it { should eq buildkite_env }
         
     | 
| 
       945 
     | 
    
         
            -
                  end
         
     | 
| 
       946 
     | 
    
         
            -
                end
         
     | 
| 
       947 
     | 
    
         
            -
              end
         
     | 
| 
       948 
     | 
    
         
            -
             
     | 
| 
       949 
940 
     | 
    
         
             
              describe '.log_level' do
         
     | 
| 
       950 
941 
     | 
    
         
             
                subject { described_class.log_level }
         
     | 
| 
       951 
942 
     | 
    
         | 
| 
         @@ -1022,4 +1013,28 @@ describe KnapsackPro::Config::Env do 
     | 
|
| 
       1022 
1013 
     | 
    
         
             
                  expect(described_class.test_runner_adapter).to eql 'RSpecAdapter'
         
     | 
| 
       1023 
1014 
     | 
    
         
             
                end
         
     | 
| 
       1024 
1015 
     | 
    
         
             
              end
         
     | 
| 
      
 1016 
     | 
    
         
            +
             
     | 
| 
      
 1017 
     | 
    
         
            +
              describe '.detected_ci' do
         
     | 
| 
      
 1018 
     | 
    
         
            +
                [
         
     | 
| 
      
 1019 
     | 
    
         
            +
                  ['AppVeyor', { 'APPVEYOR' => '123' }, KnapsackPro::Config::CI::AppVeyor],
         
     | 
| 
      
 1020 
     | 
    
         
            +
                  ['Buildkite', { 'BUILDKITE' => 'true' }, KnapsackPro::Config::CI::Buildkite],
         
     | 
| 
      
 1021 
     | 
    
         
            +
                  ['CircleCI', { 'CIRCLECI' => 'true' }, KnapsackPro::Config::CI::Circle],
         
     | 
| 
      
 1022 
     | 
    
         
            +
                  ['Cirrus CI', { 'CIRRUS_CI' => 'true' }, KnapsackPro::Config::CI::CirrusCI],
         
     | 
| 
      
 1023 
     | 
    
         
            +
                  ['Codefresh', { 'CF_BUILD_ID' => '123' }, KnapsackPro::Config::CI::Codefresh],
         
     | 
| 
      
 1024 
     | 
    
         
            +
                  ['Codeship', { 'CI_NAME' => 'codeship' }, KnapsackPro::Config::CI::Codeship],
         
     | 
| 
      
 1025 
     | 
    
         
            +
                  ['GitHub Actions', { 'GITHUB_ACTIONS' => 'true' }, KnapsackPro::Config::CI::GithubActions],
         
     | 
| 
      
 1026 
     | 
    
         
            +
                  ['GitLab CI', { 'GITLAB_CI' => 'true' }, KnapsackPro::Config::CI::GitlabCI],
         
     | 
| 
      
 1027 
     | 
    
         
            +
                  ['Heroku CI', { 'HEROKU_TEST_RUN_ID' => '123' }, KnapsackPro::Config::CI::Heroku],
         
     | 
| 
      
 1028 
     | 
    
         
            +
                  ['Semaphore CI 1.0', { 'SEMAPHORE_BUILD_NUMBER' => '123' }, KnapsackPro::Config::CI::Semaphore],
         
     | 
| 
      
 1029 
     | 
    
         
            +
                  ['Semaphore CI 2.0', { 'SEMAPHORE' => 'true', 'SEMAPHORE_WORKFLOW_ID' => '123' }, KnapsackPro::Config::CI::Semaphore2],
         
     | 
| 
      
 1030 
     | 
    
         
            +
                  ['Travis CI', { 'TRAVIS' => 'true' }, KnapsackPro::Config::CI::Travis],
         
     | 
| 
      
 1031 
     | 
    
         
            +
                  ['Unsupported', {}, KnapsackPro::Config::CI::Base],
         
     | 
| 
      
 1032 
     | 
    
         
            +
                ].each do |ci, env, expected|
         
     | 
| 
      
 1033 
     | 
    
         
            +
                  it "detects #{ci}" do
         
     | 
| 
      
 1034 
     | 
    
         
            +
                    stub_const("ENV", env)
         
     | 
| 
      
 1035 
     | 
    
         
            +
             
     | 
| 
      
 1036 
     | 
    
         
            +
                    expect(described_class.detected_ci).to eq(expected)
         
     | 
| 
      
 1037 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1038 
     | 
    
         
            +
                end
         
     | 
| 
      
 1039 
     | 
    
         
            +
              end
         
     | 
| 
       1025 
1040 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: knapsack_pro
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version:  
     | 
| 
      
 4 
     | 
    
         
            +
              version: 5.0.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - ArturT
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2023- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-06-07 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake
         
     |