Skip to content

Convert test workflow to container-based testing#1208

Merged
hugsy merged 2 commits into
hugsy:mainfrom
gordonmessmer:container-ci
Feb 15, 2026
Merged

Convert test workflow to container-based testing#1208
hugsy merged 2 commits into
hugsy:mainfrom
gordonmessmer:container-ci

Conversation

@gordonmessmer

Copy link
Copy Markdown
Contributor

Refactor the CI workflow to build and run tests inside Docker containers instead of directly on GitHub runners. This adds support for testing on Fedora releases in addition to Ubuntu 22.04 and 24.04.

Description

This change uses container images for tests so that platforms other than the ones provided directly by GitHub can be tested.

Testing in container images makes it easier to support a broader range of platforms, but more importantly it allows gef to test and adapt to changes in glibc, gcc, and Python as they are released, rather than re-synchronizing with those projects every two years.

Checklist

  • My code follows the code style of this project.
  • My change includes a change to the documentation, if required.
  • If my change adds new code, adequate tests have been added.
  • I have read and agree to the CONTRIBUTING document.

@github-actions

Copy link
Copy Markdown

🤖 Coverage update for 23e7e8c 🟢

Old New
Commit 60a99cb 23e7e8c
Score 71.0582% 71.0582% (0)

@github-actions

github-actions Bot commented Feb 2, 2026

Copy link
Copy Markdown

🤖 Coverage update for d19c0ec 🔴

Old New
Commit 1840407 d19c0ec
Score 71.116% 71.0582% (-0.0578)

@github-actions

github-actions Bot commented Feb 2, 2026

Copy link
Copy Markdown

🤖 Coverage update for cbb4132 🔴

Old New
Commit 1840407 cbb4132
Score 71.116% 71.0582% (-0.0578)

@gordonmessmer

Copy link
Copy Markdown
Contributor Author

This version of the container CI setup runs on all of the expected platforms. The failures on Fedora 43 and 44 amd64 are expected... they are probably the result of glibc changes, and illustrating those failures is largely the point of this change.

The failures on arm are not expected. It looks like the tests that 1840407 marked skipped aren't being skipped in the arm container. I'll have to look into that later.

@hugsy

hugsy commented Feb 2, 2026

Copy link
Copy Markdown
Owner

Very cool @gordonmessmer - funny that we both got to work on that almost at the time 😄

Can you mark the failing tests as skipped on CI then ? So we can still have a 🟢 build for this PR, and tackle the known failures in individual followup issues/PRs ?

@hugsy

hugsy commented Feb 2, 2026

Copy link
Copy Markdown
Owner

FWIW in my own tests in #1206 I remember Arch was also not playing well for the test suite.

@gordonmessmer gordonmessmer force-pushed the container-ci branch 2 times, most recently from 4059975 to ef33e72 Compare February 2, 2026 23:33
@github-actions

github-actions Bot commented Feb 2, 2026

Copy link
Copy Markdown

🤖 Coverage update for ef33e72 🔴

Old New
Commit 1840407 ef33e72
Score 71.116% 71.0582% (-0.0578)

@github-actions

github-actions Bot commented Feb 2, 2026

Copy link
Copy Markdown

🤖 Coverage update for 01f7132 🔴

Old New
Commit 1840407 01f7132
Score 71.116% 71.0775% (-0.0385)

@github-actions

github-actions Bot commented Feb 2, 2026

Copy link
Copy Markdown

🤖 Coverage update for d6febdd 🔴

Old New
Commit 1840407 d6febdd
Score 71.116% 71.0582% (-0.0578)

@gordonmessmer

Copy link
Copy Markdown
Contributor Author

funny that we both got to work on that almost at the time

I suppose I should make a habit of looking at open PRs to see if the thing I want to do is already in progress, but.... -_-

Can you mark the failing tests as skipped on CI then

If you'd like, I can squash these commits and then work on disabling some tests. Or you can squash these and merge in its current condition, and then disable tests in another PR. Either way, I think it makes sense to disable tests in a separate commit so that it's easier to revert later.

I think that the PR is now working as expected. All of the Ubuntu jobs are green. Fedora 42 on amd64 is green. Fedora 43 and rawhide fail, but that's expected. Not entirely sure why f42:arm64 fails. :-/

@hugsy

hugsy commented Feb 3, 2026

Copy link
Copy Markdown
Owner

Either way, I think it makes sense to disable tests in a separate commit so that it's easier to revert later.

Yeah, that's fine. As long as we track the disabled tests in an issue or somewhere so we don't forget they fail (and point it if someone comes and asks why it fails)

I can de-dust my arm64 dev box and install a fedora43 vm over the weekend and have a look. But in the meantime I see no reason not to merge this PR as-is when all lights come back green

@gordonmessmer

Copy link
Copy Markdown
Contributor Author

I'll send a commit to disable some tests shortly... Are you able to reopen and rebase #1197 ? It fixes some of the tests currently failing.

Refactor the CI workflow to build and run tests inside Docker containers
instead of directly on GitHub runners. This adds support for testing on
Fedora releases in addition to Ubuntu 22.04 and 24.04.
@github-actions

github-actions Bot commented Feb 3, 2026

Copy link
Copy Markdown

🤖 Coverage update for e28dc31 🔴

Old New
Commit 1840407 e28dc31
Score 71.116% 71.0582% (-0.0578)

@github-actions

github-actions Bot commented Feb 3, 2026

Copy link
Copy Markdown

🤖 Coverage update for 049d3dd 🔴

Old New
Commit 1840407 049d3dd
Score 71.116% 71.0582% (-0.0578)

@github-actions

github-actions Bot commented Feb 3, 2026

Copy link
Copy Markdown

🤖 Coverage update for 1a098de 🔴

Old New
Commit 1840407 1a098de
Score 71.116% 71.0582% (-0.0578)

@gordonmessmer

Copy link
Copy Markdown
Contributor Author

Checking back in... Let me know if you'd like any more changes to this PR. All the tests were green on the last run.

After merging this, I'd like to try to get #1197 merged, and then restore some of the temporarily disabled tests.

@hugsy hugsy self-requested a review February 14, 2026 16:42
hugsy
hugsy previously approved these changes Feb 14, 2026

@hugsy hugsy left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

awesome work, this is much better now
just pointed out a couple of lint thingy, you can batch-commit them if you'd like

Comment thread tests/utils.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/heap.py Outdated
Comment thread tests/commands/scan.py Outdated
@hugsy

hugsy commented Feb 14, 2026

Copy link
Copy Markdown
Owner

done ! and sorry for the long wait 😞

@github-actions

Copy link
Copy Markdown

🤖 Coverage update for 1cbda7a 🟢

Old New
Commit 6102a1e 1cbda7a
Score 71.0582% 71.0775% (0.0193)

@gordonmessmer

Copy link
Copy Markdown
Contributor Author

you can batch-commit them if you'd like

Easier to squash those changes into the "disable temporarily" commit locally. :)

Thanks!

@github-actions

Copy link
Copy Markdown

🤖 Coverage update for dd318ff 🟢

Old New
Commit 6102a1e dd318ff
Score 71.0582% 71.0775% (0.0193)

@hugsy hugsy left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all good, let's go!

@hugsy hugsy merged commit 650978c into hugsy:main Feb 15, 2026
14 checks passed
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