@@ -19,6 +19,16 @@ inputs:
1919 required : false
2020 type : boolean
2121 default : false
22+ coverage :
23+ description : Enforce test coverage
24+ required : false
25+ type : boolean
26+ default : false
27+ minimum_coverage :
28+ description : Minimum test coverage
29+ required : false
30+ type : string
31+ default : 85
2232 build :
2333 description : Build gem
2434 required : false
@@ -62,11 +72,19 @@ runs:
6272 fi
6373 fi
6474
75+ # Install ImageMagick for active_storage testing.
76+ # Unfortunately, as of ubuntu-24.04, ImageMagick is no longer pre-installed in Github Actions.
77+ # See https://github.com/actions/runner-images/issues/10772
78+ - name : Install ImageMagick for active_storage testing
79+ if : " ${{ inputs.gem == 'opentelemetry-instrumentation-active_storage' }}"
80+ shell : bash
81+ run : sudo apt update && sudo apt install -y imagemagick
82+
6583 # Install ruby and bundle dependencies and cache!
6684 # ...but not for appraisals, sadly.
6785 - name : Install Ruby ${{ inputs.ruby }} with dependencies
6886 if : " ${{ steps.setup.outputs.appraisals == 'false' }}"
69- uses : ruby/setup-ruby@v1.213 .0
87+ uses : ruby/setup-ruby@v1.214 .0
7088 with :
7189 ruby-version : " ${{ inputs.ruby }}"
7290 working-directory : " ${{ steps.setup.outputs.gem_dir }}"
7795 # If we're using appraisals, do it all manually.
7896 - name : Install Ruby ${{ inputs.ruby }} without dependencies
7997 if : " ${{ steps.setup.outputs.appraisals == 'true' }}"
80- uses : ruby/setup-ruby@v1.213 .0
98+ uses : ruby/setup-ruby@v1.214 .0
8199 with :
82100 ruby-version : " ${{ inputs.ruby }}"
83101 bundler : " latest"
@@ -153,6 +171,14 @@ runs:
153171 bundle exec rake rubocop
154172 working-directory : " ${{ steps.setup.outputs.gem_dir }}"
155173
174+ - name : Coverage
175+ shell : bash
176+ if : " ${{ inputs.coverage == 'true' }}"
177+ # This starts a new simplecov run which tracks nothing of its own,
178+ # but merges with the existing coverage reports generated during testing.
179+ run : ' bundle exec ruby -e '' require "simplecov"; SimpleCov.minimum_coverage(${{ inputs.minimum_coverage }})'' '
180+ working-directory : " ${{ steps.setup.outputs.gem_dir }}"
181+
156182 - name : Build Gem
157183 shell : bash
158184 if : " ${{ inputs.build == 'true' }}"
0 commit comments