Skip to content

Commit b44589a

Browse files
committed
Add Codecov integration and update CI workflow; enhance coverage reporting
1 parent 8b98727 commit b44589a

File tree

5 files changed

+66
-39
lines changed

5 files changed

+66
-39
lines changed

.github/workflows/cicd.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,16 @@ jobs:
3737
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
3838
run: bundle exec rspec
3939

40+
- name: Upload coverage to Codecov
41+
uses: codecov/codecov-action@v4
42+
with:
43+
token: ${{ secrets.CODECOV_TOKEN }}
44+
files: ./coverage/coverage.xml
45+
fail_ci_if_error: true
46+
4047
publish:
4148
name: Build + Publish
42-
# needs: test
49+
needs: test
4350
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
4451
runs-on: ubuntu-latest
4552
permissions:

.rspec_status

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,35 @@
11
example_id | status | run_time |
22
-------------------------------------------------- | ------ | --------------- |
3-
./spec/integration/chat_spec.rb[1:1:1:1] | passed | 0.5826 seconds |
4-
./spec/integration/chat_spec.rb[1:1:1:2] | passed | 3.43 seconds |
5-
./spec/integration/chat_spec.rb[1:1:2:1] | passed | 0.49383 seconds |
6-
./spec/integration/chat_spec.rb[1:1:2:2] | passed | 1.36 seconds |
7-
./spec/integration/chat_spec.rb[1:1:3:1] | passed | 0.74049 seconds |
8-
./spec/integration/chat_spec.rb[1:1:3:2] | passed | 4.11 seconds |
9-
./spec/integration/content_spec.rb[1:1:1] | passed | 3.87 seconds |
10-
./spec/integration/content_spec.rb[1:1:2] | passed | 1.23 seconds |
11-
./spec/integration/content_spec.rb[1:1:3] | passed | 2.07 seconds |
12-
./spec/integration/content_spec.rb[1:2:1] | passed | 2.05 seconds |
13-
./spec/integration/content_spec.rb[1:2:2] | passed | 2.88 seconds |
14-
./spec/integration/embeddings_spec.rb[1:1:1:1] | passed | 0.30185 seconds |
15-
./spec/integration/embeddings_spec.rb[1:1:1:2] | passed | 0.30812 seconds |
16-
./spec/integration/embeddings_spec.rb[1:1:2:1] | passed | 13.05 seconds |
17-
./spec/integration/embeddings_spec.rb[1:1:2:2] | passed | 0.78135 seconds |
18-
./spec/integration/error_handling_spec.rb[1:1] | passed | 0.21297 seconds |
19-
./spec/integration/image_generation_spec.rb[1:1:1] | passed | 12.44 seconds |
20-
./spec/integration/image_generation_spec.rb[1:1:2] | passed | 17.66 seconds |
21-
./spec/integration/image_generation_spec.rb[1:1:3] | passed | 0.00324 seconds |
22-
./spec/integration/image_generation_spec.rb[1:1:4] | failed | 0.15682 seconds |
23-
./spec/integration/image_generation_spec.rb[1:1:5] | passed | 18.69 seconds |
24-
./spec/integration/image_generation_spec.rb[1:1:6] | passed | 0.00032 seconds |
25-
./spec/integration/rails_spec.rb[1:1] | passed | 4.05 seconds |
26-
./spec/integration/rails_spec.rb[1:2] | passed | 1.82 seconds |
27-
./spec/integration/streaming_spec.rb[1:1:1:1] | passed | 0.58445 seconds |
28-
./spec/integration/streaming_spec.rb[1:1:1:2] | passed | 6.04 seconds |
29-
./spec/integration/streaming_spec.rb[1:1:2:1] | passed | 0.47171 seconds |
30-
./spec/integration/streaming_spec.rb[1:1:2:2] | passed | 2.39 seconds |
31-
./spec/integration/streaming_spec.rb[1:1:3:1] | passed | 0.72016 seconds |
32-
./spec/integration/streaming_spec.rb[1:1:3:2] | passed | 3.59 seconds |
33-
./spec/integration/tools_spec.rb[1:1:1:1] | passed | 3.1 seconds |
34-
./spec/integration/tools_spec.rb[1:1:1:2] | passed | 7.04 seconds |
35-
./spec/integration/tools_spec.rb[1:1:2:1] | passed | 1.42 seconds |
36-
./spec/integration/tools_spec.rb[1:1:2:2] | passed | 2.24 seconds |
37-
./spec/integration/tools_spec.rb[1:1:3:1] | passed | 2.16 seconds |
38-
./spec/integration/tools_spec.rb[1:1:3:2] | passed | 5.26 seconds |
3+
./spec/integration/chat_spec.rb[1:1:1:1] | passed | 0.84333 seconds |
4+
./spec/integration/chat_spec.rb[1:1:1:2] | passed | 3.81 seconds |
5+
./spec/integration/chat_spec.rb[1:1:2:1] | passed | 0.54605 seconds |
6+
./spec/integration/chat_spec.rb[1:1:2:2] | passed | 1.25 seconds |
7+
./spec/integration/chat_spec.rb[1:1:3:1] | passed | 0.66439 seconds |
8+
./spec/integration/chat_spec.rb[1:1:3:2] | passed | 2.84 seconds |
9+
./spec/integration/content_spec.rb[1:1:1] | passed | 3.51 seconds |
10+
./spec/integration/content_spec.rb[1:1:2] | passed | 1.11 seconds |
11+
./spec/integration/content_spec.rb[1:1:3] | passed | 1.77 seconds |
12+
./spec/integration/content_spec.rb[1:2:1] | passed | 1.68 seconds |
13+
./spec/integration/content_spec.rb[1:2:2] | passed | 2.01 seconds |
14+
./spec/integration/embeddings_spec.rb[1:1:1:1] | passed | 0.28694 seconds |
15+
./spec/integration/embeddings_spec.rb[1:1:1:2] | passed | 0.32456 seconds |
16+
./spec/integration/embeddings_spec.rb[1:1:2:1] | passed | 0.85006 seconds |
17+
./spec/integration/embeddings_spec.rb[1:1:2:2] | passed | 0.82832 seconds |
18+
./spec/integration/error_handling_spec.rb[1:1] | passed | 0.19746 seconds |
19+
./spec/integration/image_generation_spec.rb[1:1:1] | passed | 10.73 seconds |
20+
./spec/integration/image_generation_spec.rb[1:1:2] | passed | 16.95 seconds |
21+
./spec/integration/image_generation_spec.rb[1:1:3] | passed | 0.00024 seconds |
22+
./spec/integration/rails_spec.rb[1:1] | passed | 3.39 seconds |
23+
./spec/integration/rails_spec.rb[1:2] | passed | 1.74 seconds |
24+
./spec/integration/streaming_spec.rb[1:1:1:1] | passed | 0.56418 seconds |
25+
./spec/integration/streaming_spec.rb[1:1:1:2] | passed | 6.33 seconds |
26+
./spec/integration/streaming_spec.rb[1:1:2:1] | passed | 0.51911 seconds |
27+
./spec/integration/streaming_spec.rb[1:1:2:2] | passed | 2.31 seconds |
28+
./spec/integration/streaming_spec.rb[1:1:3:1] | passed | 0.78299 seconds |
29+
./spec/integration/streaming_spec.rb[1:1:3:2] | passed | 3.82 seconds |
30+
./spec/integration/tools_spec.rb[1:1:1:1] | passed | 3.89 seconds |
31+
./spec/integration/tools_spec.rb[1:1:1:2] | passed | 7.78 seconds |
32+
./spec/integration/tools_spec.rb[1:1:2:1] | passed | 1.25 seconds |
33+
./spec/integration/tools_spec.rb[1:1:2:2] | passed | 2.1 seconds |
34+
./spec/integration/tools_spec.rb[1:1:3:1] | passed | 1.59 seconds |
35+
./spec/integration/tools_spec.rb[1:1:3:2] | passed | 3.05 seconds |

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@ A delightful Ruby way to work with AI. Chat in text, analyze and generate images
1212
<img src="https://upload.wikimedia.org/wikipedia/commons/e/ec/DeepSeek_logo.svg" alt="DeepSeek" height="40" width="120">
1313
</p>
1414

15-
[![Gem Version](https://badge.fury.io/rb/ruby_llm.svg)](https://badge.fury.io/rb/ruby_llm)
16-
[![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)
15+
<p align="center">
16+
<a href="https://badge.fury.io/rb/ruby_llm"><img src="https://badge.fury.io/rb/ruby_llm.svg" alt="Gem Version" /></a>
17+
<a href="https://github.com/testdouble/standard"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="Ruby Style Guide" /></a>
18+
<img alt="Gem Total Downloads" src="https://img.shields.io/gem/dt/ruby_llm">
19+
<a href="https://codecov.io/gh/crmne/ruby_llm"><img src="https://codecov.io/gh/crmne/ruby_llm/branch/main/graph/badge.svg" alt="codecov" /></a>
20+
<a href="https://github.com/crmne/ruby_llm/actions/workflows/cicd.yml"><img src="https://github.com/crmne/ruby_llm/actions/workflows/cicd.yml/badge.svg" alt="CI" /></a>
21+
</p>
1722

1823
## Features
1924

ruby_llm.gemspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ Gem::Specification.new do |spec|
4545

4646
# Development dependencies
4747
spec.add_development_dependency 'bundler', '>= 2.0'
48+
spec.add_development_dependency 'codecov'
4849
spec.add_development_dependency 'dotenv'
4950
spec.add_development_dependency 'irb'
5051
spec.add_development_dependency 'nokogiri'
@@ -57,6 +58,7 @@ Gem::Specification.new do |spec|
5758
spec.add_development_dependency 'rubocop', '>= 1.0'
5859
spec.add_development_dependency 'rubocop-rake', '>= 0.6'
5960
spec.add_development_dependency 'simplecov', '>= 0.21'
61+
spec.add_development_dependency 'simplecov-cobertura'
6062
spec.add_development_dependency 'sqlite3'
6163
spec.add_development_dependency 'webmock', '~> 3.18'
6264
spec.add_development_dependency 'yard', '>= 0.9'

spec/spec_helper.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# frozen_string_literal: true
22

3+
require 'simplecov'
4+
require 'simplecov-cobertura'
5+
require 'codecov'
6+
7+
SimpleCov.start do
8+
enable_coverage :branch
9+
10+
formatter SimpleCov::Formatter::MultiFormatter.new(
11+
[
12+
SimpleCov::Formatter::SimpleFormatter,
13+
SimpleCov::Formatter::Codecov,
14+
SimpleCov::Formatter::CoberturaFormatter
15+
]
16+
)
17+
end
18+
319
require 'active_record'
420
require 'bundler/setup'
521
require 'fileutils'

0 commit comments

Comments
 (0)