ruby_ci 0.2.1 → 0.2.3
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/bin/rubyci_rubycritic +10 -0
- data/lib/ruby_ci/ruby_critic/cli/application.rb +39 -0
- data/lib/ruby_ci/simple_cov/reporting.rb +1 -1
- data/lib/ruby_ci/version.rb +1 -1
- data/lib/ruby_ci.rb +21 -10
- data/ruby_ci.gemspec +2 -2
- metadata +21 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7c35bb0aa43fb15f11e288bdc246e8790f0a74346e55f341340e53b700de31a
|
4
|
+
data.tar.gz: 2cdd3f26da2bf5655f49175a5d2e4163942cd47ab4dd4a8ca4c90ac02996146b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3162b05df9bc862155874dddd44b645523629ff14d1eb0467221c0684443efa4534bf973dccca5dc589157b4d9f59bca863d8fe424c9e504ed15caf231a2d132
|
7
|
+
data.tar.gz: d38b4b7cec3187fa0fc538daa6a2fab7b27faf398b6077679cccbfee95eaaf452076893af88e3ea175da92b1edf89e32607a67fd804c5eb76e850405ed2c2c31
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Always look in the lib directory of this gem
|
5
|
+
# first when searching the load path
|
6
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
7
|
+
|
8
|
+
require 'ruby_ci/ruby_critic/cli/application'
|
9
|
+
|
10
|
+
exit RubyCI::RubyCritic::Cli::Application.new(ARGV + ["--format", "json"]).execute
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rubycritic/cli/application'
|
4
|
+
require 'ruby_ci'
|
5
|
+
require 'base64'
|
6
|
+
require 'zlib'
|
7
|
+
|
8
|
+
module RubyCI
|
9
|
+
module RubyCritic
|
10
|
+
module Cli
|
11
|
+
class Application < ::RubyCritic::Cli::Application
|
12
|
+
def execute
|
13
|
+
status = super
|
14
|
+
|
15
|
+
content = File.read('tmp/rubycritic/report.json')
|
16
|
+
report = JSON.load(content)
|
17
|
+
modules = report['analysed_modules']
|
18
|
+
report['analysed_modules'] = {}
|
19
|
+
modules.each do |mod|
|
20
|
+
report['analysed_modules'][ mod['path'] ] = mod
|
21
|
+
mod['smells'].each do |smell|
|
22
|
+
location = smell['locations'].first
|
23
|
+
start_line = location['line'] - 1
|
24
|
+
end_line = start_line + 3
|
25
|
+
lines = File.readlines(location['path'])[start_line..end_line]
|
26
|
+
location['src'] = lines.join
|
27
|
+
smell['locations'][0] = location
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
compressed_data = ::Base64.strict_encode64(Zlib::Deflate.deflate(report.to_json, 9))
|
32
|
+
RubyCI.report_ruby_critic(compressed_data, 'passed')
|
33
|
+
|
34
|
+
return status
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -3,7 +3,7 @@ module RubyCI
|
|
3
3
|
module Reporting
|
4
4
|
def self.included base
|
5
5
|
base.instance_eval do
|
6
|
-
|
6
|
+
unless (ENV['RUBY_CI_SECRET_KEY'] || '').empty?
|
7
7
|
def write_last_run(result)
|
8
8
|
::SimpleCov::LastRun.write(result:
|
9
9
|
result.coverage_statistics.transform_values do |stats|
|
data/lib/ruby_ci/version.rb
CHANGED
data/lib/ruby_ci.rb
CHANGED
@@ -7,6 +7,7 @@ require_relative "ruby_ci/exceptions"
|
|
7
7
|
require "async"
|
8
8
|
require "async/http/endpoint"
|
9
9
|
require "async/websocket/client"
|
10
|
+
require "net/http"
|
10
11
|
|
11
12
|
module RubyCI
|
12
13
|
class Error < StandardError; end
|
@@ -29,16 +30,13 @@ module RubyCI
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def report_simplecov(results)
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
author: RubyCI.configuration.author.to_json,
|
40
|
-
content: results
|
41
|
-
}
|
33
|
+
uri = URI('https://fast.ruby.ci/api/runs')
|
34
|
+
res = Net::HTTP.post_form(uri, report_options('simplecov', results))
|
35
|
+
end
|
36
|
+
|
37
|
+
def report_ruby_critic(compressed_data, status)
|
38
|
+
data = report_options('ruby_critic', compressed_data)
|
39
|
+
data[:status] = status
|
42
40
|
|
43
41
|
uri = URI('https://fast.ruby.ci/api/runs')
|
44
42
|
res = Net::HTTP.post_form(uri, data)
|
@@ -55,6 +53,19 @@ module RubyCI
|
|
55
53
|
def debug(msg)
|
56
54
|
puts "\n\e[36mDEBUG: \e[0m #{msg}\n" if ENV["RUBY_CI_DEBUG"]
|
57
55
|
end
|
56
|
+
|
57
|
+
def report_options(run_key, content)
|
58
|
+
{
|
59
|
+
build_id: RubyCI.configuration.build_id,
|
60
|
+
run_key: run_key,
|
61
|
+
secret_key: RubyCI.configuration.secret_key,
|
62
|
+
branch: RubyCI.configuration.branch,
|
63
|
+
commit: RubyCI.configuration.commit,
|
64
|
+
commit_msg: RubyCI.configuration.commit_msg,
|
65
|
+
author: RubyCI.configuration.author.to_json,
|
66
|
+
content: content
|
67
|
+
}
|
68
|
+
end
|
58
69
|
end
|
59
70
|
|
60
71
|
class WebSocket
|
data/ruby_ci.gemspec
CHANGED
@@ -23,11 +23,11 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
24
24
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
25
25
|
end
|
26
|
-
spec.
|
27
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
26
|
+
spec.executables = ["rubyci_rubycritic"]
|
28
27
|
spec.require_paths = ["lib"]
|
29
28
|
|
30
29
|
spec.add_dependency "console", "~> 1.15.0"
|
31
30
|
spec.add_dependency "async-websocket", '<= 0.20.0'
|
31
|
+
spec.add_dependency "rubycritic", "~> 4.8.0"
|
32
32
|
spec.add_development_dependency "pry"
|
33
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_ci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ale ∴
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: console
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "<="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.20.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubycritic
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.8.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.8.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: pry
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -55,7 +69,8 @@ dependencies:
|
|
55
69
|
description: Ruby wrapper for creating RubyCI integrations
|
56
70
|
email:
|
57
71
|
- ale@alexvko.com
|
58
|
-
executables:
|
72
|
+
executables:
|
73
|
+
- rubyci_rubycritic
|
59
74
|
extensions: []
|
60
75
|
extra_rdoc_files: []
|
61
76
|
files:
|
@@ -70,6 +85,7 @@ files:
|
|
70
85
|
- README.md
|
71
86
|
- Rakefile
|
72
87
|
- bin/console
|
88
|
+
- bin/rubyci_rubycritic
|
73
89
|
- bin/setup
|
74
90
|
- lib/minitest/reporters/rubyci_reporter.rb
|
75
91
|
- lib/minitest/rubyci_plugin.rb
|
@@ -78,6 +94,7 @@ files:
|
|
78
94
|
- lib/ruby_ci/exceptions.rb
|
79
95
|
- lib/ruby_ci/extract_definitions.rb
|
80
96
|
- lib/ruby_ci/rspec_formatter.rb
|
97
|
+
- lib/ruby_ci/ruby_critic/cli/application.rb
|
81
98
|
- lib/ruby_ci/runner_prepend.rb
|
82
99
|
- lib/ruby_ci/simple_cov.rb
|
83
100
|
- lib/ruby_ci/simple_cov/reporting.rb
|