ci: build with latest stable Go version #739
Workflow file for this run
This file contains 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 -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: 'stable' | |
- 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: 'stable' | |
- 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: 'stable' | |
- 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: '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@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 | |