Skip to content

Change CI runner from Ubuntu 22.04 to 18.04#107

Open
jcbf wants to merge 1 commit into
masterfrom
jcbf-fix-tests-coverage
Open

Change CI runner from Ubuntu 22.04 to 18.04#107
jcbf wants to merge 1 commit into
masterfrom
jcbf-fix-tests-coverage

Conversation

@jcbf

@jcbf jcbf commented Jan 18, 2026

Copy link
Copy Markdown
Owner

Workaround to get tests and coverage work again

Workaround to get tests and coverage work again
@claude

claude Bot commented Jan 18, 2026

Copy link
Copy Markdown

Pull Request Review

Summary

This PR changes the CI runner from ubuntu-22.04 to ubuntu-18.04 as a workaround to restore tests and coverage functionality.


⚠️ Critical Issues

1. Ubuntu 18.04 is End of Life (EOL)

Ubuntu 18.04 reached End of Standard Support on May 31, 2023. Using an EOL operating system introduces several serious concerns:

  • Security vulnerabilities: No security patches or updates
  • Unmaintained packages: Dependencies like libmilter-dev, libspf2-dev won't receive updates
  • GitHub Actions deprecation: GitHub has already deprecated ubuntu-18.04 runners and they may be removed entirely soon
  • Compliance risks: Using EOL systems can violate security policies

Impact: HIGH - This creates security and maintenance risks for the project.

2. Inconsistency in Workflow

The workflow file currently has:

  • build-and-test job: ubuntu-18.04 (after this PR)
  • docker-build job: ubuntu-22.04 (line 51 in .github/workflows/c-cpp.yml:51)

This inconsistency means you're testing on one platform but building production Docker images on another, which could mask compatibility issues.

Impact: MEDIUM - Testing and production environments should match.


🔍 Root Cause Analysis

The PR description states this is a "workaround to get tests and coverage work again." However, the PR doesn't explain:

  1. What specifically is failing on ubuntu-22.04?
  2. Why does it work on ubuntu-18.04?
  3. What is the actual underlying issue?

Without understanding the root cause, this change is treating symptoms rather than the disease.


💡 Recommended Approach

Instead of downgrading to an EOL OS, I recommend investigating and fixing the actual issue:

Investigation Steps:

  1. Review recent failed CI runs on ubuntu-22.04 to identify specific error messages
  2. Check for package availability differences between Ubuntu 18.04 and 22.04
  3. Look for breaking changes in dependencies (libmilter, libspf2, lcov)

Likely Root Causes to Investigate:

  • Package version differences: Ubuntu 22.04 may have newer versions with breaking changes
  • Missing packages: Some packages may have been renamed or removed
  • Build flag changes: Compiler or linker flags may need updates
  • Test framework issues: The test suite may need updates for newer environments

Suggested Fixes (depending on root cause):

# Option 1: Pin specific package versions
- name: Install dependencies
  run: |
    sudo apt-get update -qq
    sudo apt-get install -y libmilter-dev=<version> libspf2-dev=<version> ...

# Option 2: Use Docker container with controlled environment
jobs:
  build-and-test:
    runs-on: ubuntu-22.04
    container:
      image: ubuntu:20.04  # or custom image
    steps: ...

# Option 3: Fix compatibility issues in code/tests
# (Would require seeing actual error messages)

📋 Questions for Author

  1. What specific errors occur on ubuntu-22.04?
  2. Have you tried ubuntu-20.04 as a middle ground?
  3. Have you checked if the dependencies are available on ubuntu-22.04 under different package names?
  4. Is there a specific lcov or gcov version requirement?

🎯 Alternative Solutions

Short-term (if immediate fix needed):

  • Use ubuntu-20.04 instead - it's supported until April 2025
  • Document this as a temporary workaround with a TODO/issue to upgrade

Long-term (recommended):

  • Create a custom Docker image with controlled dependencies
  • Update code/tests to work with modern toolchain
  • Consider migrating to a container-based testing approach

✅ What to Do Before Merging

If you must proceed with this PR:

  1. Document the why: Add detailed comments explaining the specific compatibility issue
  2. Create a follow-up issue: Track the need to upgrade to a supported OS
  3. Update docker-build job: Change line 51 to also use ubuntu-18.04 for consistency (though I don't recommend this)
  4. Set a timeline: Plan to resolve this before GitHub removes ubuntu-18.04 runners

Verdict

I recommend NOT merging this PR in its current form. Instead:

  1. Investigate the actual failure on ubuntu-22.04
  2. Fix the root cause
  3. If that's not immediately possible, use ubuntu-20.04 as a temporary solution
  4. Document the reasoning and create a follow-up issue

Using an EOL operating system is a security and maintenance liability that should be avoided unless there's absolutely no alternative - and in this case, we haven't yet explored the alternatives.


🤖 Generated with Claude Code - Review performed on 2026-01-18

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.

1 participant