I currently have a docker compose script that brings up a few containers and runs them against some hardware that is installed on a local network. The software in these containers requires that hardware be installed on the local network in order to run. The software is also stored in GitLab repos.
I'd like to have GitLab CI kickoff some nightly tests (scheduled) that can bring up these compose scripts and execute several commands in the containers against this hardware.
I would think something like this that requires special hardware and which can only be provided on a local network is a common thing for GitLab. I've run tests within the GitLab instance, but in this case, it needs to be local. I've seen posts on using GitLab runners to do this (very old) and just want to make sure this is the right way to go.
Also, this appears deprecated. https://gitlab.com/gitlab-org/gitlab/-/issues/385235
Can anyone elaborate what tools can do this or better ways on how it might be done?
I believe you are looking for self-hosting your own gitlab runners. When you self host these runners and connect them to your project, these runners should be able to access local resources on the network. There is a whole process for setting that up in the docs which is called Registration.
There are a multiple types of gitlab runner exectuors but since you mention you are using docker compose, you can continue using the docker executor if you would like to continue running your hardware tests through containers.
You may use the tag
attribute in both gitlab runners (which can be set in the gitlab project settings panel) and your gitlab-ci.yml
files to force certain jobs to run the runner that is tied to your local network.