mirror of
https://github.com/osrg/gobgp.git
synced 2024-05-11 05:55:10 +00:00
529 lines
16 KiB
YAML
529 lines
16 KiB
YAML
name: ci
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
crossbuild:
|
|
name: crossbuild
|
|
strategy:
|
|
matrix:
|
|
GOOS: ['freebsd', 'openbsd', 'darwin', 'windows']
|
|
GOARCH: ['amd64']
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- run: |
|
|
go env
|
|
go build ./cmd/gobgp
|
|
go build ./cmd/gobgpd
|
|
env:
|
|
GOOS: ${{ matrix.GOOS }}
|
|
GOARCH: ${{ matrix.GOARCH }}
|
|
|
|
unit:
|
|
name: unit
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- run: |
|
|
go test -race -timeout 240s ./...
|
|
if [ "$(go env GOARCH)" = "amd64" ]; then go test -race github.com/osrg/gobgp/v3/pkg/packet/bgp -run ^Test_RaceCondition$; else echo 'skip'; fi
|
|
|
|
unit386:
|
|
name: unit386
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
GOARCH: 386
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- run: |
|
|
go env GOARCH
|
|
go test -timeout 240s ./...
|
|
|
|
golangci:
|
|
name: lint
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@v3
|
|
|
|
embeded:
|
|
name: embeded
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- run: |
|
|
python test/scenario_test/ci-scripts/build_embeded_go.py docs/sources/lib.md
|
|
python test/scenario_test/ci-scripts/build_embeded_go.py docs/sources/lib-ls.md
|
|
|
|
lintdoc:
|
|
name: lintdoc
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: |
|
|
npm install markdownlint-cli
|
|
./node_modules/.bin/markdownlint $(find . -type d -name 'node_modules' -prune -o -type f -name '*.md' -print)
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install scspell3k
|
|
tools/spell-check/scspell.sh
|
|
tools/grep_avoided_functions.sh
|
|
|
|
build:
|
|
name: build container image
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- name: container image
|
|
run: |
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
fab -r test/lib make-gobgp-ctn --tag gobgp --from-image osrg/quagga
|
|
docker save gobgp > gobgp.tar
|
|
fab -r test/lib make-gobgp-ctn --tag gobgp-oq --from-image osrg/quagga:v1.0
|
|
docker save gobgp-oq > gobgp-oq.tar
|
|
|
|
- name: upload image file
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: artifact
|
|
path: |
|
|
gobgp.tar
|
|
gobgp-oq.tar
|
|
|
|
router:
|
|
name: router
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/bgp_router_test.py --gobgp-image gobgp -x -s
|
|
|
|
evpn:
|
|
name: evpn
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/evpn_test.py --gobgp-image gobgp -x -s
|
|
|
|
flowspec:
|
|
name: flowspec
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/flow_spec_test.py --gobgp-image gobgp -x -s
|
|
|
|
global-policy:
|
|
name: global-policy
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/global_policy_test.py --gobgp-image gobgp -x -s
|
|
|
|
graceful-restart:
|
|
name: graceful-restart
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/graceful_restart_test.py --gobgp-image gobgp -x -s
|
|
|
|
ibgp:
|
|
name: ibgp
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/ibgp_router_test.py --gobgp-image gobgp -x -s
|
|
|
|
rr:
|
|
name: route-refector
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_reflector_test.py --gobgp-image gobgp -x -s
|
|
|
|
as2:
|
|
name: as2
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_as2_test.py --gobgp-image gobgp -x -s
|
|
|
|
ipv4-v6:
|
|
name: ipv4-v6
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
echo "{\"ipv6\": true,\"fixed-cidr-v6\": \"2001:db8:1::/64\"}" > daemon.json
|
|
sudo cp daemon.json /etc/docker
|
|
sudo systemctl restart docker
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_ipv4_v6_test.py --gobgp-image gobgp -x -s
|
|
|
|
malformed:
|
|
name: malformed
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_malformed_test.py --gobgp-image gobgp -x -s
|
|
|
|
rs-policy-grpc:
|
|
name: rs-policy-grpc
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_policy_grpc_test.py --gobgp-image gobgp -x -s
|
|
|
|
rs-policy:
|
|
name: rs-policy
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_policy_test.py --gobgp-image gobgp -x -s
|
|
|
|
softreset:
|
|
name: softreset
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_softreset_test.py --gobgp-image gobgp -x -s
|
|
|
|
rs1:
|
|
name: routeserver1
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_test.py --gobgp-image gobgp -x -s
|
|
|
|
rs2:
|
|
name: routeserver2
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/route_server_test2.py --gobgp-image gobgp -x -s
|
|
|
|
llgr:
|
|
name: llgr
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/long_lived_graceful_restart_test.py --gobgp-image gobgp -x -s
|
|
|
|
vrf-neighbor1:
|
|
name: vrf-neighbor1
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/vrf_neighbor_test.py --gobgp-image gobgp -x -s
|
|
|
|
vrf-neighbor2:
|
|
name: vrf-neighbor2
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/vrf_neighbor_test2.py --gobgp-image gobgp -x -s
|
|
|
|
rtc:
|
|
name: rtc
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/rtc_test.py --gobgp-image gobgp -x -s
|
|
|
|
unnumbered:
|
|
name: unnumbered
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
echo "{\"ipv6\": true,\"fixed-cidr-v6\": \"2001:db8:1::/64\"}" > daemon.json
|
|
sudo cp daemon.json /etc/docker
|
|
sudo systemctl restart docker
|
|
# don't assign ipv6 addresss to docker0 bridge so two containers have p2p link.
|
|
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
|
|
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
|
|
sudo sysctl -w net.ipv6.conf.docker0.disable_ipv6=1
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/bgp_unnumbered_test.py --gobgp-image gobgp -x -s
|
|
|
|
aspath:
|
|
name: aspath
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/aspath_test.py --gobgp-image gobgp -x -s
|
|
|
|
addpath:
|
|
name: addpath
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/addpath_test.py --gobgp-image gobgp -x -s
|
|
|
|
malformed-handling:
|
|
name: malformed-handling
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/bgp_malformed_msg_handling_test.py --gobgp-image gobgp -x -s
|
|
|
|
confederation:
|
|
name: confederation
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/bgp_confederation_test.py --gobgp-image gobgp -x -s
|
|
|
|
zebra:
|
|
name: zebra
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/bgp_zebra_test.py --gobgp-image gobgp -x -s
|
|
|
|
zebra-nht:
|
|
name: zebra-nht
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp-oq.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/bgp_zebra_nht_test.py --gobgp-image gobgp-oq -x -s
|
|
|
|
zapi-v3:
|
|
name: zapi-v3
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp-oq.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/zapi_v3_test.py --gobgp-image gobgp-oq -x -s
|
|
|
|
zapi-v3-multipath:
|
|
name: zapi-v3-multipath
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp-oq.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/zapi_v3_multipath_test.py --gobgp-image gobgp-oq -x -s
|
|
|
|
mup:
|
|
name: mup
|
|
runs-on: ubuntu-22.04
|
|
needs: build
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/download-artifact@v3
|
|
- name: test
|
|
run: |
|
|
docker load < artifact/gobgp.tar
|
|
sudo apt-get install python3-setuptools
|
|
sudo pip3 install -r test/pip-requires.txt
|
|
PYTHONPATH=test python3 test/scenario_test/mup_test.py --gobgp-image gobgp -x -s
|
|
|