- Go to project folder on GPU server.
cd ~/shahid_carla- Run test in Python 3.8 container (CARLA client 0.9.14).
podman run --rm --network host -v "$PWD":/work -w /work docker.io/python:3.8-slim bash -lc '
python -m pip install --no-cache-dir carla==0.9.14 &&
python /work/test_carla.py
'- Make script executable (first time only).
chmod +x run_carla_test.sh- Run everything with one command.
./run_carla_test.sh test_carla.pyWhat the script does automatically:
- Starts CARLA simulator container if needed.
- Waits until CARLA is reachable on
127.0.0.1:2000. - Runs your Python test in a Python 3.8 container with
carla==0.9.14. - Returns pass/fail exit code for CI/CD.
- GitHub-hosted runner could not reach the GPU server over SSH (network timeout).
- The GPU server is reachable only from internal/VPN network.
- CARLA simulation requires direct GPU and local Podman access on that machine.
- Running Actions directly on the GPU server removes SSH/SCP network dependency.
- Workflow execution changed from
ubuntu-latest+ SSH/SCP toruns-on: self-hosted. - Test is executed directly by the runner on hydra:
./run_carla_test.sh test_carla.py- No remote copy step is required in the final setup.
- On hydra, download and extract GitHub runner package.
- Configure runner with repository URL and registration token.
- Accept default labels (
self-hosted,Linux,X64). - Start runner with
./run.shand verifyListening for Jobs. - Push workflow update from local repository.
- Confirm Actions job is picked by the self-hosted runner and succeeds.
- Keep runner as a system service to survive terminal close/reboot.
sudo ./svc.sh install
sudo ./svc.sh start
sudo ./svc.sh status- If a registration token is exposed in logs/chat, regenerate it in GitHub.
- Go to runner folder.
cd /home/carlactions/shahid_carla/actions-runner- Confirm you are in the correct place.
pwd
ls -lExpected files include: run.sh, svc.sh, _work, _diag.
- Start runner in foreground (temporary/manual).
./run.shKeep terminal open. Stop with Ctrl+C.
- After local push to
main.
- GitHub Actions should auto-trigger.
- Runner on hydra picks the job from queue.
- Job runs
run_carla_test.shand reports pass/fail.