-
Notifications
You must be signed in to change notification settings - Fork 24
Attempting to automate testing of armv7 (armhf) images using a Debian 11.3 armhf VM and QEMU #9
base: trunk
Are you sure you want to change the base?
Conversation
…different architecture before running tests. Added 10 second delay when platform is specified to give containers time to start when running under emulation. Experimented with geckodriver armv7 binary, which results in Firefox tests passing using qemu-user-static
… set the DOCKER_HOST when running the build.
…c and that's what was being used in the Makefile.
…ing armv7l in a QEMU VM again...
Firefox tests run on the To allow the grid enough time to start, we set node-firefox:
node-chromium tests passed as well:
standalone-firefox:
standalone-chromium:
Verifying we're actually running armv7 images:
Still not successful in getting the tests to run on the armv7-tests branch on CircleCI, even with the larger arm-large runners. I will double check that I have the |
This draft pull request is for automating the testing of armhf images. We have tests for x86_64 and arm64 images using CircleCI, thanks to their medium (x86_64) and arm-medium (aarch64) runners. However, I've not found a free cloud provider which hosts armhf images.
I've created a Debian 11.3 armhf VM with Docker installed, and I've published it to GitHub here: https://github.com/jamesmortensen/virtual-machine-releases/releases/tag/debian-11.3-armhf-ci-v1.0
The plan was to do the following:
While everything works in theory, the challenge I've run into is that the CircleCI runners do not have a hypervisor, like KVM, built into the kernel. Emulation via QEMU is possible, but it is so slow to where we get a UNIXHttpPoolConnection timeout. Below are some steps to replicate:
Additionally, when attempting to start the containers beforehand and then run tests, they still fail:
Ironically, I can start an armhf VM on a Macbook Pro M1, connect to the Docker socket, and run the tests and have them pass, but the hardware on a Macbook Pro M1 is much more than what we have available in CircleCI, GitHub Actions, and other CI/CD providers.
I am not sure yet how to increase the UnixHTTPConnectionPool timeout, but that's likely the next thing I would look into in order to see if it's possible to automate this testing in a CI environment. This draft pull request is not intended to be merged at this time, but to highlight the challenges and document this progress so others can follow along.