Skip to content

Fix fpm-deployment CI: pin action versions and fix lcov example exclusion#1191

Open
Copilot wants to merge 2 commits into
masterfrom
copilot/fix-ci-fpm-deployment
Open

Fix fpm-deployment CI: pin action versions and fix lcov example exclusion#1191
Copilot wants to merge 2 commits into
masterfrom
copilot/fix-ci-fpm-deployment

Conversation

Copilot AI commented Jun 24, 2026

Copy link
Copy Markdown

The fpm-deployment coverage job was failing to exclude example files from the coverage report, causing newly-added examples (0% covered by fpm test) to dilute the stdlib source coverage metric. The deploy job also used setup-fortran@main, an unstable floating ref.

Root cause

lcov 2.0 (Ubuntu 24.04 / current ubuntu-latest) changed * glob semantics — it no longer matches /. The existing filter:

lcov --remove coverage.info '*/example/*' ...

never matched fpm's relative source paths (e.g. example/ascii/example_ascii_to_lower.f90) because the leading * requires at least one path component before example/. All 100+ example files remained in the uploaded coverage.info, each with 0% line coverage.

Changes

  • Fix lcov --remove pattern — add example/** to cover relative paths at any depth; keep */example/* for absolute paths; add --ignore-errors unused,mismatch:
    lcov --remove coverage.info '*/example/*' 'example/**' \
      --output-file coverage.info --ignore-errors unused,mismatch
  • Pin fortran-lang/setup-fortran@main@v1.6.2 in both deploy and coverage jobs to prevent silent breakage from upstream HEAD changes
  • Update stale action versions in deploy job: actions/checkout@v2.3.1@v4, actions/setup-python@v1@v5

…sion

- Pin fortran-lang/setup-fortran@main to @v1.6.2 in both deploy and
  coverage jobs to avoid breakages from HEAD changes
- Update actions/checkout@v2.3.1 -> @v4 and setup-python@v1 -> @v5
  in deploy job to use current supported versions
- Fix lcov --remove pattern for example file exclusion:
  * lcov 2.x (Ubuntu 24.04) changed * glob to NOT match /
  * The old pattern */example/* only matched absolute paths with one
    path component before example and one after (not recursive)
  * fpm stores source paths as relative (e.g. example/ascii/file.f90),
    which the old pattern never matched
  * Add example/** to cover relative paths at any depth
  * Add --ignore-errors unused,mismatch to handle edge cases

This ensures example programs (compiled but never run by fpm test)
are excluded from the coverage denominator, preventing newly-added
examples from diluting the stdlib source coverage metric.
Copilot AI changed the title [WIP] Fix CI failures for fpm-deployment workflow and coverage Fix fpm-deployment CI: pin action versions and fix lcov example exclusion Jun 24, 2026
Copilot AI requested a review from jalvesz June 24, 2026 13:52
@codecov

codecov Bot commented Jun 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.84%. Comparing base (4c8521d) to head (304d2ca).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1191      +/-   ##
==========================================
+ Coverage   68.81%   68.84%   +0.02%     
==========================================
  Files         408      408              
  Lines       13726    13726              
  Branches     1552     1552              
==========================================
+ Hits         9446     9450       +4     
+ Misses       4280     4276       -4     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jalvesz jalvesz marked this pull request as ready for review June 24, 2026 14:57
@jalvesz jalvesz requested review from a team, jvdp1 and perazz June 24, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants