-
-
Notifications
You must be signed in to change notification settings - Fork 0
GitLab Runner Manual
This guide covers installing a GitLab project runner directly on a Jetson device without Kubernetes.
- Jetson device running JetPack (L4T r36.4.0 or compatible)
- JetPack SDK components installed (Jetson Multimedia API, CUDA, Tegra libraries)
- Docker with NVIDIA runtime or the runner executes jobs in
shellmode - A project runner token (
glrt-...) — see Requesting a Token
Add the GitLab Runner repository and install for arm64:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
sudo apt-get install -y gitlab-runnerVerify:
gitlab-runner --versionSkip this section if you plan to use the shell executor.
sudo apt-get install -y docker.io nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerVerify GPU access in Docker:
sudo docker run --rm --runtime=nvidia harbor.local/jetson/l4t-jetpack:r36.4.0 \
bash -c "ls /usr/lib/aarch64-linux-gnu/tegra/ && echo OK"The Docker executor runs each job in a fresh container. NVIDIA runtime injects Tegra libraries automatically.
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.timmertech.nl/" \
--token "<glrt-YOUR_PROJECT_RUNNER_TOKEN>" \
--executor "docker" \
--docker-image "harbor.local/jetson/l4t-jetpack:r36.4.0" \
--docker-runtime "nvidia" \
--description "jetson-<variant>" \
--docker-volumes "/tmp:/tmp"The shell executor runs jobs directly on the host. All dependencies must be pre-installed on the system.
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.timmertech.nl/" \
--token "<glrt-YOUR_PROJECT_RUNNER_TOKEN>" \
--executor "shell" \
--description "jetson-<variant>"Required system packages for the shell executor:
sudo apt-get install -y \
git build-essential cmake pkg-config yasm nasm wget ca-certificates \
libv4l-dev libx264-dev libx265-dev libnuma-dev libvpx-dev libopus-dev \
libmp3lame-dev libvorbis-dev libdav1d-dev libass-dev libfreetype-dev \
libgnutls28-devTags are configured in GitLab when creating the project runner. The runner inherits them from the server.
Edit /etc/gitlab-runner/config.toml to fine-tune settings.
[[runners]]
name = "jetson-<variant>"
url = "https://gitlab.timmertech.nl/"
executor = "docker"
[runners.docker]
image = "harbor.local/jetson/l4t-jetpack:r36.4.0"
runtime = "nvidia"
privileged = false
volumes = ["/tmp:/tmp", "/cache"]
shm_size = 0
[runners.docker.tmpfs]
"/tmp" = "rw,noexec"[[runners]]
name = "jetson-<variant>"
url = "https://gitlab.timmertech.nl/"
executor = "shell"
environment = [
"NVIDIA_VISIBLE_DEVICES=all",
"NVIDIA_DRIVER_CAPABILITIES=all"
]Restart after changes:
sudo gitlab-runner restartEnsure the runner starts on boot:
sudo systemctl enable gitlab-runner
sudo systemctl start gitlab-runnerCheck status:
sudo gitlab-runner status
sudo gitlab-runner verifyCheck the runner appears in GitLab:
- Go to Settings > CI/CD > Runners
- Runner should show online with tags
jetsonand your variant
Run a quick local test:
# Verify GPU/Tegra access
ls /usr/lib/aarch64-linux-gnu/tegra/libnvv4l2.so && echo "Tegra libs OK"Project runner tokens are created by maintainers. To request one:
- Open an issue using the GitLab Runner Token Request template
- A maintainer will create the project runner and share the
glrt-...token via a secure channel - Once you have the token, follow this guide from step 3
- NVIDIA Container Toolkit is not installed or not configured for Docker
- Run:
sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
- Check runner tags match the job tags in
.gitlab-ci.yml - HW test jobs need both
jetsonAND<variant>tags - Build/patch jobs have no tags — any runner picks them up
- All build dependencies must be installed on the host system
- Check the package list in step 3 under shell executor
- Tegra libraries not available in the job environment
- Docker executor: ensure
runtime = "nvidia"in runner config - Shell executor: ensure
NVIDIA_VISIBLE_DEVICES=allin environment and Tegra libs are onLD_LIBRARY_PATH
- The
gitlab-runneruser needs access to NVIDIA devices - Add to the video group:
sudo usermod -aG video gitlab-runner - Restart:
sudo gitlab-runner restart
🏠 Home · 📦 Repository · 🐞 Issues · 🏷 Releases · 📋 README · 📝 CHANGELOG
Documentation lives in this wiki. To change a doc, edit the relevant wiki page (clone jetson-ffmpeg.wiki.git) — the docs/ folder in the repo has been retired.
📦 Usage & Runtime
❓ FAQ
- Overview
- Hardware & Platform
- Versions & Compatibility
- Build & Install
- Performance
- Features & Fork Differences
🛠 Development
⚙️ CI / Infrastructure
- GitHub Actions
- GitLab CI
- GitHub Runner — Manual
- GitHub Runner — Kubernetes
- GitLab Runner — Manual
- GitLab Runner — Kubernetes
- Release Process
🔬 Project / Fork Analysis