Skip to content

[Bug] Unit tests requiring root in CI cannot run on CodeBuild runners #1878

@sondavidb

Description

@sondavidb

ref: #1875

TL;DR We have to test unit tests requiring root on GitHub actions images, which reduces coverage and is inefficient to spin up a whole instance just for one package of tests. We should consolidate once the appropriate conditions are met.

Our current CI for testing runs on CodeBuild runners and kernel 4.14. Newest Ubuntu runners provided by GitHub as of this issue are using Ubuntu 24-04 on kernel 6.14.

CodeBuild's old kernel causes issues when doing mount syscalls in root unit tests. CodeBuild moving to 5.10 should fix this specific issue. However I was having some trouble locally getting tests to pass, as the overlay testing suite's Rename call seems to attempt to rename across devices which is not supported with os.Rename. I was able to consistently reproduce it across EC2 instances but for some reason GitHub runners do not seem to have this issue. I suspect there's a setup difference here causing the failure in one but not the other, but I'm not certain as I haven't yet gotten CodeBuild runners to run this test successfully due to aforementioned kernel issues.

#1875 provides a workaround for this by just running root unit tests in a separate runner, however this is obviously suboptimal. On top of provisioning an entire runner just for the few unit tests, we also do not get proper test coverage.

When CodeBuild moves to 5.10, we should see if we can run root tests on CodeBuild. If so, we should combine the two tests. Example of how this could be done: sondavidb@8d13c20

Once we no longer have to rely on a separate runner specifically for root unit tests, this issue can be closed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions