doc: add Design considerations section to CONTRIBUTING #1535
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: "stable" | |
- 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: "stable" | |
- run: | | |
go test -v -race -timeout 240s ./... | |
if [ "$(go env GOARCH)" = "amd64" ]; then go test -v -race github.com/osrg/gobgp/v4/pkg/packet/bgp -run ^Test_RaceCondition$; else echo 'skip'; fi | |
unit386: | |
name: unit386 | |
runs-on: ubuntu-22.04 | |
env: | |
GOARCH: 386 | |
CGO_ENABLED: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: "stable" | |
- run: | | |
sudo apt update | |
sudo apt install -y gcc-multilib g++-multilib | |
go env GOARCH CGO_ENABLED | |
go test -v -timeout 240s ./... | |
protobuf-check: | |
name: protobuf lint and format check | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: bufbuild/buf-setup-action@v1 | |
with: | |
version: latest | |
- name: buf lint | |
run: buf lint proto/ | |
- name: buf format check | |
run: buf format --diff --exit-code | |
golangci: | |
name: lint | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: "stable" | |
- name: golangci-lint | |
uses: golangci/golangci-lint-action@v8 | |
embedded: | |
name: embedded | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: "stable" | |
- run: | | |
python test/scenario_test/ci-scripts/build_embedded_go.py docs/sources/lib.md | |
python test/scenario_test/ci-scripts/build_embedded_go.py docs/sources/bgp-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: "stable" | |
- 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@v4 | |
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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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@v4 | |
- 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 |