mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-29 12:49:07 +08:00
Currently, the runner name is taken from the docker container's hostname. This changes across restarts, causing the runner name to change across restarts too. This uses the host name to keep a consistent name.
109 lines
2.6 KiB
Markdown
109 lines
2.6 KiB
Markdown
# IBM Z self-hosted builder
|
|
|
|
libbpf CI uses an IBM-provided z15 self-hosted builder. There are no IBM Z
|
|
builds of GitHub (GH) Actions runner, and stable qemu-user has problems with .NET
|
|
apps, so the builder runs the x86_64 runner version with qemu-user built from
|
|
the master branch.
|
|
|
|
We are currently supporting runners for the following repositories:
|
|
* libbpf/libbpf
|
|
* kernel-patches/bpf
|
|
* kernel-patches/vmtest
|
|
|
|
Below instructions are directly applicable to libbpf, and require minor
|
|
modifications for kernel-patches repos. Currently, qemu-user-static Docker
|
|
image is shared between all GitHub runners, but separate actions-runner-\*
|
|
service / Docker image is created for each runner type.
|
|
|
|
## Configuring the builder.
|
|
|
|
### Install prerequisites.
|
|
|
|
```
|
|
$ sudo apt install -y docker.io # Ubuntu
|
|
```
|
|
|
|
### Add services.
|
|
|
|
```
|
|
$ sudo cp *.service /etc/systemd/system/
|
|
$ sudo systemctl daemon-reload
|
|
```
|
|
|
|
### Create a config file.
|
|
|
|
```
|
|
$ sudo tee /etc/actions-runner-libbpf
|
|
repo=<owner>/<name>
|
|
access_token=<ghp_***>
|
|
runner_name=<hostname>
|
|
```
|
|
|
|
Access token should have the repo scope, consult
|
|
https://docs.github.com/en/rest/reference/actions#create-a-registration-token-for-a-repository
|
|
for details.
|
|
|
|
### Autostart the x86_64 emulation support.
|
|
|
|
This step is important, you would not be able to build docker container
|
|
without having this service running. If container build fails, make sure
|
|
service is running properly.
|
|
|
|
```
|
|
$ sudo systemctl enable --now qemu-user-static
|
|
```
|
|
|
|
### Autostart the runner.
|
|
|
|
```
|
|
$ sudo systemctl enable --now actions-runner-libbpf
|
|
```
|
|
|
|
## Rebuilding the image
|
|
|
|
In order to update the `iiilinuxibmcom/actions-runner-libbpf` image, e.g. to
|
|
get the latest OS security fixes, use the following commands:
|
|
|
|
```
|
|
$ sudo docker build \
|
|
--pull \
|
|
-f actions-runner-libbpf.Dockerfile \
|
|
-t iiilinuxibmcom/actions-runner-libbpf \
|
|
.
|
|
$ sudo systemctl restart actions-runner-libbpf
|
|
```
|
|
|
|
## Removing persistent data
|
|
|
|
The `actions-runner-libbpf` service stores various temporary data, such as
|
|
runner registration information, work directories and logs, in the
|
|
`actions-runner-libbpf` volume. In order to remove it and start from scratch,
|
|
e.g. when upgrading the runner or switching it to a different repository, use
|
|
the following commands:
|
|
|
|
```
|
|
$ sudo systemctl stop actions-runner-libbpf
|
|
$ sudo docker rm -f actions-runner-libbpf
|
|
$ sudo docker volume rm actions-runner-libbpf
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
In order to check if service is running, use the following command:
|
|
|
|
```
|
|
$ sudo systemctl status <service name>
|
|
```
|
|
|
|
In order to get logs for service:
|
|
|
|
```
|
|
$ journalctl -u <service name>
|
|
```
|
|
|
|
In order to check which containers are currently active:
|
|
|
|
```
|
|
$ sudo docker ps
|
|
```
|