summaryrefslogtreecommitdiffstats
path: root/docker/ubuntu22-ci/README.md
blob: 617192eb71b269e605d46b8b0e23c053ae362461 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Ubuntu 22.04

This builds an ubuntu 22.04 container for dev / test

# Build

```
docker build -t frr-ubuntu22:latest -f docker/ubuntu-ci/Dockerfile .
```

# Run

```
docker run -d --init --privileged --name frr-ubuntu22 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest
```

# Running full topotest (container stops at end)

```
docker run --init -it --privileged --name frr-ubuntu22 \
    -v /lib/modules:/lib/modules frr-ubuntu22:latest \
    bash -c 'cd /home/frr/frr/tests/topotests; sudo pytest -nauto --dist=loadfile'
```

# Extract results from the above run into `run-results` dir and analyze

```
tests/topotests/analyze.py -C frr-ubuntu22 -Ar run-results
```

# Extract coverage from a stopped container into host FRR source tree

```
docker export frr-ubuntu22 | tar --strip=3 --wildcards -vx '*.gc??'
lcov -b $(pwd) --capture --directory . --output-file=coverage.info
```

# make check

```
docker exec frr-ubuntu22 bash -c 'cd ~/frr ; make check'
```

# interactive bash

```
docker exec -it frr-ubuntu22 bash
```

# Run a specific topotest

```
docker exec frr-ubuntu22 bash -c 'cd ~/frr/tests/topotests ; sudo pytest ospf_topo1/test_ospf_topo1.py'
```

# stop & remove container

```
docker stop frr-ubuntu22 ; docker rm frr-ubuntu22
```

# remove image

```
docker rmi frr-ubuntu22:latest
```