cucumber-ci-environment 9.0.0 → 9.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1292449161604186dd58873a044886eed7427da563b3f2172dd3a1107007ed69
4
- data.tar.gz: 6214b6ab20c1c91ffc7585a3fb9ea207144f304021ec170cf1cfe5c1488fd524
3
+ metadata.gz: 8b113a16cc3df5fa4c163edac4bed8dc9cc479b03d7bc873d0e35e551b17e133
4
+ data.tar.gz: b350572faa0a9f959d12dfbda6b3b323cf3d18e9a46635d813af29a808f6dd27
5
5
  SHA512:
6
- metadata.gz: 79bd805cd33679777a0779248d8c295586fb2768f6609122174141a48bdaf028c809dc9b92a163c75f104f8a328a3aac372e0d273e05631ec8db31a72120faae
7
- data.tar.gz: cc73d17d21639bab099d2d7efd4419c87c4e3c186c01777a4e373f3032b9fc9e791e652a4dd55460cca455def86e15c5557718fe471ce0e56c74454e0b1aba07
6
+ metadata.gz: b094712321f9251fab4120c75ed7fd261e187cced6aea4ed0e5fffaf8703b9dc679f5b0a7eb9979c6ff66fe7d40427fface9b156940d2f6c120b9d2785948475
7
+ data.tar.gz: 71a3c6542c46d9064cc4f276378ca4c9296cbff2be31a7a6073bf78d36f74c88ef23affc4f941eedcd35ca25cc4bb1e155f27c83b87f86dd5e344010a9e8873c
@@ -7,17 +7,17 @@ module Cucumber
7
7
  extend VariableExpression
8
8
  CI_ENVIRONMENTS_PATH = File.join(File.dirname(__FILE__), 'ci_environment/CiEnvironments.json')
9
9
 
10
- def detect_ci_environment(env)
11
- ci_environments = JSON.parse(IO.read(CI_ENVIRONMENTS_PATH))
10
+ def detect_ci_environment(env, file_reader = IO.method(:read))
11
+ ci_environments = JSON.parse(file_reader.call(CI_ENVIRONMENTS_PATH))
12
12
  ci_environments.each do |ci_environment|
13
- detected = detect(ci_environment, env)
13
+ detected = detect(ci_environment, env, file_reader)
14
14
  return detected unless detected.nil?
15
15
  end
16
16
 
17
17
  nil
18
18
  end
19
19
 
20
- def detect(ci_environment, env)
20
+ def detect(ci_environment, env, file_reader)
21
21
  url = evaluate(ci_environment['url'], env)
22
22
  return nil if url.nil?
23
23
 
@@ -27,13 +27,13 @@ module Cucumber
27
27
  buildNumber: evaluate(ci_environment['buildNumber'], env),
28
28
  }
29
29
 
30
- detected_git = detect_git(ci_environment, env)
30
+ detected_git = detect_git(ci_environment, env, file_reader)
31
31
  result[:git] = detected_git if detected_git
32
32
  result
33
33
  end
34
34
 
35
- def detect_git(ci_environment, env)
36
- revision = evaluate(ci_environment['git']['revision'], env)
35
+ def detect_git(ci_environment, env, file_reader)
36
+ revision = detect_revision(ci_environment, env, file_reader)
37
37
  return nil if revision.nil?
38
38
 
39
39
  remote = evaluate(ci_environment['git']['remote'], env)
@@ -51,6 +51,17 @@ module Cucumber
51
51
  git_info
52
52
  end
53
53
 
54
+ def detect_revision(ci_environment, env, file_reader)
55
+ if env['GITHUB_EVENT_NAME'] == 'pull_request'
56
+ raise StandardError('GITHUB_EVENT_PATH not set') unless env['GITHUB_EVENT_PATH']
57
+ event = JSON.parse(file_reader.call(env['GITHUB_EVENT_PATH']))
58
+ raise StandardError('GITHUB_EVENT_PATH not set') unless event['before']
59
+ return event['before']
60
+ end
61
+
62
+ return evaluate(ci_environment['git']['revision'], env)
63
+ end
64
+
54
65
  def remove_userinfo_from_url(value)
55
66
  return nil if value.nil?
56
67
 
@@ -63,6 +74,6 @@ module Cucumber
63
74
  end
64
75
  end
65
76
 
66
- module_function :detect_ci_environment, :detect, :detect_git, :remove_userinfo_from_url
77
+ module_function :detect_ci_environment, :detect, :detect_git, :detect_revision, :remove_userinfo_from_url
67
78
  end
68
79
  end
@@ -8,7 +8,12 @@ describe 'detect_ci_environment' do
8
8
  context "with #{File.basename(test_data_file, '.txt')}" do
9
9
  subject { JSON.parse(ci_environment.to_json) }
10
10
 
11
- let(:ci_environment) { Cucumber::CiEnvironment.detect_ci_environment(env) }
11
+ def mock_reader(path)
12
+ return '{"before": "2436f28fad432a895bfc595bce16e907144b0dc3"}' if path.end_with?('_github_workflow/event.json')
13
+ IO.read(path)
14
+ end
15
+
16
+ let(:ci_environment) { Cucumber::CiEnvironment.detect_ci_environment(env, method(:mock_reader)) }
12
17
  let(:env) { Hash[entries] }
13
18
  let(:entries) { env_data.split(/\n/).map { |line| line.split(/=/) } }
14
19
  let(:env_data) { IO.read(test_data_file) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-ci-environment
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Prêtre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-25 00:00:00.000000000 Z
11
+ date: 2022-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -36,20 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '3.10'
39
+ version: '3.11'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 3.10.0
42
+ version: 3.11.0
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '3.10'
49
+ version: '3.11'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 3.10.0
52
+ version: 3.11.0
53
53
  description: Detect CI Environment from environment variables
54
54
  email: cukes@googlegroups.com
55
55
  executables: []
@@ -92,7 +92,7 @@ requirements: []
92
92
  rubygems_version: 3.2.32
93
93
  signing_key:
94
94
  specification_version: 4
95
- summary: cucumber-ci-environment-9.0.0
95
+ summary: cucumber-ci-environment-9.0.1
96
96
  test_files:
97
97
  - spec/capture_warnings.rb
98
98
  - spec/cucumber/ci_environment/ci_environment_spec.rb