diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index d45d9ae..03cd19f 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -27,8 +27,15 @@ jobs: ruby: "3.3" selector: EPoll - os: ubuntu - ruby: "3.3" + ruby: "3.4" + selector: EPoll + - os: ubuntu + ruby: "3.4" + selector: URing + - os: ubuntu + ruby: "3.4" selector: URing + fiber_profile_capture: "true" - os: ubuntu ruby: "head" selector: URing @@ -51,13 +58,14 @@ jobs: env: IO_EVENT_SELECTOR: ${{matrix.selector}} ASYNC_SCHEDULER_DEFAULT_WORKER_POOL: ${{matrix.worker_pool}} + FIBER_PROFILER_CAPTURE: ${{matrix.fiber_profile_capture}} run: bundle exec bake test - uses: actions/upload-artifact@v4 with: include-hidden-files: true if-no-files-found: error - name: coverage-${{matrix.os}}-${{matrix.ruby}}-${{matrix.selector}}-${{matrix.worker_pool}} + name: coverage-${{matrix.os}}-${{matrix.ruby}}-${{matrix.selector}}-${{matrix.worker_pool}}-${{matrix.fiber_profile_capture}} path: .covered.db validate: diff --git a/gems.rb b/gems.rb index 8dca18b..1f97ada 100644 --- a/gems.rb +++ b/gems.rb @@ -10,7 +10,11 @@ gemspec # gem "io-event", git: "https://github.com/socketry/io-event.git" -gem "fiber-profiler" + +# In order to capture both code paths in coverage, we need to optionally load this gem: +if ENV["FIBER_PROFILER_CAPTURE"] == "true" + gem "fiber-profiler" +end group :maintenance, optional: true do gem "bake-gem"